คำถามติดแท็ก ansible

Ansible เป็นแพลตฟอร์มซอฟต์แวร์โอเพ่นซอร์สสำหรับการกำหนดค่าและการจัดการคอมพิวเตอร์ มันรวมการปรับใช้ซอฟต์แวร์หลายโหนดดำเนินงาน ad-hoc และการจัดการการกำหนดค่า

3
วิธีดู stdout ของคำสั่ง ansible?
ฉันจะดู stdout สำหรับคำสั่ง ansible-playbook ได้อย่างไร -v แสดงเอาต์พุตที่ออกได้เท่านั้นไม่ใช่คำสั่งแต่ละคำสั่ง มันจะดีมากถ้าฉันสามารถหาวิธีทำสิ่งนี้ได้ทันทีดังนั้นหากมีบางอย่างล้มเหลว เช่น - name: print to stdout action: command echo "hello" จะพิมพ์ TASK: [print variable] ******************************************************** hello
165 ansible 

6
ฉันจะใช้ ansible ด้วยรหัสผ่านสำหรับโฮสต์ได้อย่างปลอดภัยได้อย่างไร
ฉันต้องการใช้ansibleเพื่อจัดการกลุ่มของเซิร์ฟเวอร์ที่มีอยู่ ฉันสร้างansible_hostsไฟล์และทดสอบสำเร็จแล้ว (พร้อม-Kตัวเลือก) ด้วยคำสั่งที่กำหนดเป้าหมายไปยังโฮสต์เดียวเท่านั้น ansible -i ansible_hosts host1 --sudo -K # + commands ... ปัญหาของฉันตอนนี้คือรหัสผ่านผู้ใช้ในแต่ละโฮสต์นั้นแตกต่างกัน แต่ฉันไม่สามารถหาวิธีจัดการกับสิ่งนี้ได้ใน Ansible ใช้-Kฉันได้รับพร้อมท์สำหรับรหัสผ่าน sudo เดียวล่วงหน้าซึ่งดูเหมือนว่าจะพยายามสำหรับโฮสต์ที่ตามมาทั้งหมดโดยไม่ต้องแจ้ง: host1 | ... host2 | FAILED => Incorrect sudo password host3 | FAILED => Incorrect sudo password host4 | FAILED => Incorrect sudo password host5 | FAILED => Incorrect sudo …
108 security  sudo  ansible 

10
Ansible: เรียกใช้งานเฉพาะเมื่อระบุแท็ก
แท็กที่สามารถบันทึกได้สามารถใช้เพื่อเรียกใช้งาน / บทบาทเพียงบางส่วน ซึ่งหมายความว่าโดยค่าเริ่มต้นงานทั้งหมดจะถูกดำเนินการและเราสามารถป้องกันงานบางอย่างที่จะดำเนินการเท่านั้น เราสามารถ จำกัด งานที่จะ exectued เฉพาะเมื่อมีการระบุแท็ก "foo" เราสามารถใช้แท็กปัจจุบันในwhenส่วนของงานได้หรือไม่?
76 ansible 

5
วิธีการรวมงานการติดตั้งแพ็คเกจเข้าด้วยกันได้อย่างไร
ฉันเริ่มด้วยansibleและจะใช้มันเพื่อติดตั้งแพ็คเกจบน Linux distros หลาย ๆ ตัว ฉันเห็นในเอกสารที่มีการแยกคำสั่งyumและapt- สิ่งที่จะเป็นวิธีที่ง่ายที่สุดในการรวมเข้าด้วยกันและใช้สิ่งนี้: - name: install the latest version of Apache unified_install: name=httpd state=latest แทน - name: install the latest version of Apache on CentOS yum: name=httpd state=latest when: ansible_os_family == "RedHat" - name: install the latest version of Apache on Debian apt: pkg=httpd state=latest …

2
ความแตกต่างระหว่าง include_tasks และ import_tasks คืออะไร
ใน Ansible 2.4 includeโมดูลเลิกใช้แล้ว ในสถานที่ของมันก็มาพร้อมกับสองโมดูลทดแทนและimport_tasks include_tasksแต่พวกเขามีคำอธิบายที่คล้ายกันมาก: include_tasks: รวมไฟล์ที่มีรายการงานที่ต้องดำเนินการใน playbook ปัจจุบัน import_tasks: นำเข้ารายการงานที่จะเพิ่มลงใน playbook ปัจจุบันสำหรับการดำเนินการที่ตามมา ฉันควรใช้แบบเก่าเมื่อใดและควรใช้ครั้งหลังเมื่อใด
62 ansible 

5
จะตั้งค่า Ansible ชื่อผู้ใช้ / รหัสผ่านเริ่มต้นสำหรับการเชื่อมต่อ SSH ได้อย่างไร?
ฉันใช้ Ansible และฉันมีการกำหนดค่านี้ในสินค้าคงคลังของฉัน / ทั้งหมด: [master] 192.168.1.10 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant [slave] 192.168.1.11 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant 192.168.1.12 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant [app] 192.168.1.13 ansible_connection=ssh ansible_ssh_user=vagrant ansible_ssh_pass=vagrant [all:children] master slave ฉันไม่ต้องการทำซ้ำพารามิเตอร์ทั้งหมดสำหรับแต่ละอินสแตนซ์ใหม่ ฉันจะกำหนดค่าพวกเขาในที่เดียวได้อย่างไร มีไฟล์ใดที่มีพารามิเตอร์เหล่านี้หรือไม่
60 ansible 


16
Ansible ติดอยู่กับการรวบรวมข้อเท็จจริง
ฉันมีปัญหาแปลก ๆ กับกล่อง ansible ของฉัน (คนพเนจร) ทุกอย่างทำงานได้เมื่อวานและ playbook ของฉันทำงานได้ดี ทุกวันนี้ ansible แฮงค์ที่ "รวบรวมข้อเท็จจริง"? นี่คือผลลัพธ์ verbose: <5.xxx.xxx.xxx> ESTABLISH CONNECTION FOR USER: deploy <5.xxx.xxx.xxx> REMOTE_MODULE setup <5.xxx.xxx.xxx> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '- o', 'ControlPersist=60s', '-o', 'ControlPath=/home/vagrant/.ansible/cp/ansible-s sh-%h-%p-%r', '-o', 'Port=2221', '-o', 'KbdInteractiveAuthentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o ', 'PasswordAuthentication=no', '-o', 'User=deploy', '-o', …
52 ssh  ansible 

4
Ansible: คัดลอกเทมเพลตเฉพาะเมื่อไม่มีไฟล์ปลายทาง
ฉันใช้Ansible 1.6.6เพื่อจัดเตรียมเครื่องของฉัน มีงานแม่แบบใน playbook ของฉันที่สร้างไฟล์ปลายทางจากแม่แบบ Jinja2: tasks: - template: src=somefile.j2 dest=/etc/somefile.conf ฉันไม่ต้องการแทนที่somefile.confหากมีอยู่แล้ว เป็นไปได้ไหมกับ Ansible? ถ้าเป็นเช่นนั้นได้อย่างไร
47 ansible 

6
การปรับใช้โฟลเดอร์ของไฟล์เทมเพลตโดยใช้ ansible
มีวิธีง่าย ๆ ในการปรับใช้โฟลเดอร์ที่เต็มไปด้วยโฟลเดอร์. j2 ในกล่อง linux โดยใช้ชื่อเดียวกับแม่แบบ แต่ไม่มีนามสกุล. j2 แทนที่จะใช้โมดูลแม่แบบสำหรับแต่ละไฟล์? ตอนนี้ฉันมีรายการยาว: - name: create x template template: src=files/x.conf.j2 dest=/tmp/x.conf owner=root group=root mode=0755 notify: - restart myService
47 linux  ansible 

1
จะเข้าถึงตัวแปรโฮสต์ของโฮสต์อื่นด้วย Ansible ได้อย่างไร
[collectors]สมมติว่ามีโฮสต์ที่เก็บรวบรวมข้อมูลบางอย่างและมันเป็นในกลุ่ม [reporters]ฉันยังมีเจ้าภาพในกลุ่ม ดังนั้นฉันต้องการตั้งค่าตัวแปรให้ผู้สื่อข่าวจากgroups['collectors'][0]ที่อยู่ IP แต่ playbook สำหรับการตั้งค่านักข่าวไม่ทำงานใน[collectors]กลุ่มดังนั้นข้อเท็จจริงสำหรับโฮสต์นี้จะไม่ถูกรวบรวม มีวิธีที่จะไม่เข้ารหัสที่อยู่ IP หรือไม่
45 ansible 

2
ฉันจะเปิดใช้งานการแก้ไขข้อบกพร่องเพิ่มเติมจาก Ansible และ Vagrant ได้อย่างไร
ฉันกำลังตรวจสอบ Ansible สำหรับเซิร์ฟเวอร์และการจัดสรรแอปพลิเคชัน แอปพลิเคชันของฉันได้รับการจัดเตรียมด้วยเชลล์สคริปต์ใน Vagrant แทนที่จะเขียนสคริปต์ของฉันใหม่ฉันได้ลองสุ่มตัวอย่างและพยายามปรับใช้ ดูเหมือนว่าจะปรับใช้งานได้ดี แต่ฉันเห็นข้อความล้มเหลวหลังจากสิ่งที่ดูเหมือนเป็นขั้นตอนที่ประสบความสำเร็จ: » vagrant provision ~/vm/blvagrant 1 ↵ [default] Running provisioner: ansible... PLAY [web-servers] ************************************************************ GATHERING FACTS *************************************************************** ok: [192.168.9.149] TASK: [install python-software-properties] ************************************ ok: [192.168.9.149] => {"changed": false, "item": ""} TASK: [add nginx ppa if it ubuntu 10.04 and up] ******************************* ok: [192.168.9.149] …

6
แสดงผลด้วย Ansible
ฉันมีการเล่น Ansible สำหรับ PGBouncerที่แสดงผลลัพธ์บางอย่างจากโมดูลสถิติที่สร้างไว้ใน PGBouncer ปัญหาของฉันคือเมื่อ Ansible พิมพ์เอาต์พุตไปยังเทอร์มินัล แทนที่จะมองเห็น ---------- | OUTPUT | ---------- ฉันเห็น ----------\n| OUTPUT |\n---------- ไม่มีใครรู้วิธีรับ Ansible เพื่อ "พิมพ์สวย" ออกหรือไม่
37 ansible 

3
แนวทางปฏิบัติด้านความปลอดภัยที่ดีที่สุด
ฉันจะแนะนำ Ansible ให้กับศูนย์ข้อมูลของฉันและฉันกำลังมองหาวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับความปลอดภัยเกี่ยวกับตำแหน่งที่จะค้นหาเครื่องควบคุมและวิธีจัดการกับคีย์ SSH คำถามที่ 1: เครื่องควบคุม แน่นอนเราต้องการเครื่องควบคุม เครื่องควบคุมมีการบันทึกคีย์ SSH สาธารณะไว้ หากผู้โจมตีมีการเข้าถึงเครื่องควบคุมอาจมีการเข้าถึงศูนย์ข้อมูลทั้งหมด (หรือเซิร์ฟเวอร์ที่จัดการโดย Ansible) ดังนั้นจะดีกว่าถ้ามีเครื่องควบคุมเฉพาะในศูนย์ข้อมูลหรือเครื่องควบคุมระยะไกล (เช่นแล็ปท็อปของฉันเชื่อมต่อกับศูนย์ข้อมูลจากระยะไกล) หากวิธีปฏิบัติที่ดีที่สุดคือการใช้แล็ปท็อปของฉัน (ซึ่งอาจถูกขโมยแน่นอน แต่ฉันสามารถบันทึกกุญแจสาธารณะของฉันแบบออนไลน์อย่างปลอดภัยในระบบคลาวด์หรือออฟไลน์บนอุปกรณ์ที่เข้ารหัสแบบพกพา) ถ้าฉันต้องใช้เว็บอินเตอร์เฟส Ansible เช่น Ansible Tower, Semaphore, Rundeck หรือ Foreman ที่จะต้องติดตั้งลงในเครื่องที่รวมศูนย์ไว้ในดาต้าเซ็นเตอร์? จะรักษาความปลอดภัยและหลีกเลี่ยงให้เป็น "จุดการโจมตีเพียงจุดเดียว" ได้อย่างไร? คำถามที่ 2: ปุ่ม SSH สมมติว่าฉันต้องใช้ Ansible เพื่อทำงานบางอย่างที่ต้องดำเนินการโดยรูท (เช่นการติดตั้งแพคเกจซอฟต์แวร์หรืออะไรทำนองนี้) ฉันคิดว่าแนวทางที่ดีที่สุดคือไม่ใช้ผู้ใช้รูทบนเซิร์ฟเวอร์ที่ควบคุม แต่เพื่อเพิ่มผู้ใช้ปกติสำหรับ Ansible ด้วยสิทธิ์ sudo แต่ถ้า Ansible ต้องการทำเกือบทุกงานก็ต้องเข้าถึงทุกคำสั่งผ่าน sudo ดังนั้นตัวเลือกที่ดีที่สุดคืออะไร: …

6
ต่อท้ายรายการหรือเพิ่มคีย์ให้กับพจนานุกรมใน Ansible
(เกี่ยวข้องกับCallbacks หรือ hooks และชุดงานที่สามารถใช้ซ้ำได้ในบทบาท Ansible ): มีวิธีใดที่ดีกว่าในการผนวกรายการหรือเพิ่มคีย์ในพจนานุกรมใน Ansible than (ab) โดยใช้เทมเพลต jina2 ฉันรู้ว่าคุณสามารถทำสิ่งที่ชอบ: - name: this is a hack shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}" แต่จริง ๆ แล้วไม่มีเมตาดาต้าหรือตัวช่วยในการทำเช่นนี้? รู้สึกเปราะบางดูเหมือนว่าจะไม่มีเอกสารและอาศัยสมมติฐานมากมายเกี่ยวกับการทำงานของตัวแปรใน Ansible กรณีการใช้ของฉันมีหลายบทบาท (ส่วนขยายเซิร์ฟเวอร์ฐานข้อมูล) ที่แต่ละคนต้องจัดหาการกำหนดค่าบางอย่างให้กับบทบาทพื้นฐาน (เซิร์ฟเวอร์ฐานข้อมูล) มันไม่ง่ายเหมือนการต่อบรรทัดเข้ากับไฟล์กำหนดค่าเซิร์ฟเวอร์ db การเปลี่ยนแปลงแต่ละครั้งจะมีผลกับบรรทัดเดียวกันเช่นส่วนขยายbdrและpg_stat_statementsทั้งสองจะต้องปรากฏในบรรทัดเป้าหมาย: shared_preload_libaries = 'bdr, pg_stat_statements' วิธี Ansible ในการทำเช่นนี้เพียงแค่ประมวลผลไฟล์กำหนดค่าหลาย ๆ ครั้ง …
34 ansible 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.