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

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

5
Ansible: วิธีการเรียกใช้งานหนึ่งโฮสต์โดยโฮสต์?
ในระดับการเล่นเราต้องserial: 1อนุญาตให้เราเรียกใช้การเล่นทั้งหมดครั้งละหนึ่งโฮสต์ แต่ฉันไม่ได้พบวิธีง่ายๆในการทำสิ่งนี้ในงานเดียว สิ่งนี้มีความเกี่ยวข้องเป็นพิเศษหากงานที่มีปัญหาไม่สามารถทำการล็อคได้อย่างเหมาะสม (ด้วยเหตุผลใดก็ตาม) หนึ่งคำตอบที่ชัดเจนคือการวางงานในการเล่นของตัวเอง แต่นั่นไม่ได้ช่วยบทบาท ( serial: 1การเล่นบทโดยใช้บทบาทนั้นไม่ง่ายนัก)
15 ansible 

3
ฉันจะหลีกเลี่ยงการแสดงภารกิจ Ansible ที่ข้ามได้อย่างไร
ผลลัพธ์ของ playbooks ของฉันเต็มไปด้วยสิ่งที่ไร้ประโยชน์เกี่ยวกับงานที่ถูกข้ามไปซึ่งทำให้รำคาญและเสียเวลาในการค้นหาและหาข้อมูลเฉพาะที่ฉันกำลังมองหา นี่คือตัวอย่างของ playbook - name: Stopping Puppet Agent service: name=pe-puppet state=stopped ignore_errors: true register: result - include: rollback/restart-pe-puppet.yml when: result|failed และผลลัพธ์ที่เกี่ยวข้อง: TASK: [name | Stopping Puppet Agent] ************************************** <server.name> REMOTE_MODULE service name=pe-puppet state=stopped changed: [server.name] => {"changed": true, "name": "pe-puppet", "state":"stopped"} TASK: [name | judge_log msg='Restarting pe-puppet'] *********************** …
14 ansible 

3
จะใช้รหัสผ่าน Ansible ได้อย่างไรถ้ารหัสถูกปฏิเสธ
อินสแตนซ์เซิร์ฟเวอร์ใหม่ของฉันถูกกำหนดค่าให้ล็อกอินบนรูทผ่าน ssh ด้วยรหัสผ่าน ฉันต้องการให้ Ansible playbook กำหนดค่าใหม่ให้ใช้กุญแจแทนและปิดใช้งานการเข้าสู่ระบบด้วยรหัสผ่านเมื่อเปิดใช้งานครั้งแรกดังนั้นฉันต้องการสิ่งนี้: ลองเข้าสู่ระบบด้วยรหัส หากไม่สามารถเข้าสู่ระบบด้วยรหัส: เข้าสู่ระบบด้วยรหัสผ่าน เพิ่มรหัสไปที่ authorized_keys ปิดใช้งานการเข้าสู่ระบบด้วยรหัสผ่าน เลือกที่จะเชื่อมต่อใหม่โดยใช้รหัส ทำงานอื่น ๆ ฉันจะทำให้สำเร็จได้อย่างไร แก้ไข : เพื่อความชัดเจนฉันไม่ได้ถามวิธีเพิ่มคีย์หรือปิดใช้งานรูทนั่นเป็นเพียงบริบท ฉันถามวิธีสำรองทางรหัสผ่านหากไม่สามารถตรวจสอบสิทธิ์ด้วยรหัส ด้วย--ask-passหรือansible_ssh_passตั้งค่า Ansible จะไม่พยายามใช้การรับรองความถูกต้องของรหัสสาธารณะ

2
ตัวจัดการ Ansible ถูกกำหนดไว้ในบทบาทที่ถูกเรียกใช้หลังจาก playbook ทั้งหมดหรือบทบาทหรือไม่
ฉันกำลังใช้ Ansible 2.0 และฉันสามารถเรียกใช้สิ่งนี้ได้ แต่ฉันอาจถูกหลอกให้เชื่อสิ่งที่ไม่เป็นความจริงจากการทดสอบเชิงประจักษ์ของฉันและฉันไม่สามารถหาเอกสารใด ๆ หากตัวจัดการไม่ได้ทำงานในตอนท้ายของงานของพวกเขานี่คือปริศนาของฉัน ฉันมี playbook ที่มี 5 บทบาทอยู่ในนั้นฉันต้องการเพิ่ม 6 บทบาทในตอนท้ายซึ่งจำเป็นต้องมีตัวจัดการของบทบาทที่ 4 ให้เสร็จสมบูรณ์ก่อนจึงจะสามารถเริ่มต้นได้ มีวิธีใดที่จะเรียกใช้ Ansible เพื่อพึ่งพาตัวจัดการที่เสร็จสมบูรณ์ (เช่นบทบาทที่ทำเสร็จสมบูรณ์) ก่อนที่จะทำอย่างอื่นหรือฉันใช้ตัวจัดการผิด
13 ansible 

2
ฉันจะมีลูปซ้อนกับรูปแบบ fileglob ได้อย่างไร
ฉันกำลังพยายามสร้างคีย์ SSH ที่ได้รับอนุญาตสำหรับกลุ่มผู้ใช้ใน Ansible ฉันมีusersตัวแปรตั้งค่าเช่นนั้น: users: - { username: root, name: 'root' } - { username: user, name: 'User' } ในบทบาทเดียวกันฉันยังมีชุดของไฟล์คีย์ที่ได้รับอนุญาตในfiles/public_keysไดเรกทอรีหนึ่งไฟล์ต่อหนึ่งคีย์ที่ได้รับอนุญาต: roles/common/files/public_keys/home roles/common/files/public_keys/work ฉันต้องการคัดลอกคีย์สาธารณะไปยังผู้ใช้แต่ละคน ฉันได้ลองใช้งานต่อไปนี้: - name: copy authorized keys authorized_key: user={{ item.0.username }} key={{ item.1 }} with_nested: - users - lookup('fileglob', 'public_keys/*') แต่item.1มีสายอักขระตัวอักษรไม่แต่ละเส้นทางของแฟ้มภายใต้"lookup('fileglob', 'public_keys/*')"files/public_keys มีวิธีที่ฉันจะได้รับรายชื่อของfiles/public_keysไดเรกทอรีและคัดลอกกุญแจสาธารณะไปยังผู้ใช้แต่ละคนหรือไม่?
13 ansible 

1
เหตุใดการแจ้งเตือนที่ไม่รู้ว่าไม่ทำงาน?
ฉันเรียนรู้ที่จะเข้าใจและเขียน playbook ง่าย ๆ แต่ฉันไม่เข้าใจหรือสิ่งที่ฉันทำผิดที่ตัวจัดการนั้นไม่ทำงาน! ได้โปรดช่วยฉันด้วย Playbook ของฉัน: - hosts: HA gather_facts: False tasks: - name: Installs pacemaker yum: pkg=pacemaker,pcs,resource-agents state=latest notify: - pcsd start handlers: - name: pcsd start systemd: name=pcsd state=started เขาข้ามแจ้ง: PLAY [HA] ********************************************************************** TASK [Installs pacemaker] ****************************************************** ok: [test-ha2] ok: [test-ha1] PLAY RECAP ********************************************************************* test-ha1 : …

3
วิธีที่ง่ายที่สุดในการออกจากเพลย์บุ๊ค Ansible ขณะทำการดีบั๊ก
สมมติว่าฉันกำลังดีบักเพลย์บุ๊ค Ansible และต้องการเลิกหลังจากงานที่ได้รับ (และไม่ได้ทำงานต่อไปนี้ทั้งหมด) มีคำสั่งเวทมนต์บรรทัดเดียวหรือไม่หรือฉันต้องสร้างงาน exit / assert ด้วยตนเองหรือไม่? จากansible-playbookคู่มือฉันเห็นว่ามี--start-at-task=START_ATธง แต่ฉันไม่เห็นอะไรเลยเหมือนกัน
13 ansible 

5
SSH access gateway สำหรับเซิร์ฟเวอร์จำนวนมาก
การจัดการเซิร์ฟเวอร์หลายเครื่องเกิน 90 ในปัจจุบันด้วย 3 devops ผ่าน Ansible ทั้งหมดใช้งานได้ดี แต่มีปัญหาด้านความปลอดภัยที่ใหญ่มากในขณะนี้ devop แต่ละตัวใช้คีย์ ssh ในเครื่องของตนเองเพื่อเข้าถึงเซิร์ฟเวอร์โดยตรง อุปกรณ์ devop แต่ละตัวใช้แล็ปท็อปและแล็ปท็อปแต่ละเครื่องอาจถูกบุกรุกดังนั้นการเปิดเครือข่ายทั้งหมดของเซิร์ฟเวอร์ที่ใช้ในการโจมตี ฉันกำลังมองหาโซลูชันเพื่อจัดการการเข้าถึงจากส่วนกลางและบล็อกการเข้าถึงสำหรับคีย์ที่กำหนด ไม่ต่างกับวิธีการเพิ่มคีย์ใน bitbucket หรือ GitHub ปิดด้านบนของหัวของฉันฉันจะถือว่าทางออกจะเป็นอุโมงค์จากเครื่องหนึ่งเกตเวย์ไปยังเซิร์ฟเวอร์ที่ต้องการ ... ในขณะที่ผ่านเกตเวย์คำขอจะรับคีย์ใหม่และใช้เพื่อเข้าถึงการเข้าถึง เซิร์ฟเวอร์ ผลที่ได้คือเราสามารถฆ่าการเข้าถึง devop ได้อย่างรวดเร็วและมีประสิทธิภาพภายในไม่กี่วินาทีโดยเพียงแค่ปฏิเสธการเข้าถึงเกตเวย์ นี่เป็นตรรกะที่ดีหรือไม่? มีใครเห็นวิธีแก้ปัญหาเพื่อป้องกันปัญหานี้อยู่แล้ว?

1
จะกำหนดค่าว่างให้กับตัวแปรใน Ansible ได้อย่างไร
หากfirewall_allowed_portsอยู่ใน: - name: port {{ item }} allowed in firewall ufw: rule: allow port: "{{ item }}" proto: tcp with_items: - 22 - "{{ firewall_allowed_ports }}" ไม่ได้กำหนดดังนั้นข้อผิดพลาดนี้เกิดขึ้น: fatal: [host.example.com]: FAILED! => {"failed": true, "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. …
12 ansible 

1
ฉันจะพิมพ์ชื่อโฮสต์ปัจจุบันของโฮสต์ได้อย่างไร
ฉันเขียนบทบาทเพื่อแก้ไข motd เมื่อผู้ใช้ลงชื่อเข้าใช้เครื่อง แต่ฉันต้องการกำหนด motd ให้พิมพ์ชื่อโฮสต์ของเครื่อง ฉันใช้ตัวแปรอะไร หรือฉันจะทำอย่างไร แม่แบบ? อย่างไร ฉันใช้copy moduleสำหรับไฟล์ motd ตัวอย่างเช่นฉันต้องการที่จะสามารถพูดว่า "ยินดีต้อนรับสู่ $ hostname" ดังนั้นฉันจะแยกชื่อโฮสต์นี้โดยใช้ ansible ได้อย่างไร

3
ฉันจะลดความละเอียดของงาน Ansible บางอย่างเพื่อไม่ให้รหัสผ่านรั่วไหลลงใน syslog ได้อย่างไร?
บางครั้งฉันต้องการใช้ Ansible lineinfileหรือblockinfileโมดูลเพื่อเขียนรหัสผ่านลงในไฟล์การกำหนดค่าบางอย่าง syslogถ้าผมทำเช่นนั้นทั้งบรรทัดหรือบล็อกรหัสผ่านรวมสิ้นสุดลงในของฉัน เนื่องจากฉันไม่คิดว่าsyslogจะเป็นสถานที่ที่ปลอดภัยในการจัดเก็บรหัสผ่านไว้ฉันจะบอกได้อย่างไรว่า Ansible จะไม่รั่วรหัสผ่านของฉันsyslog? ฉันหวังว่าจะมีวิธีการทำเช่นนี้มิฉะนั้นฉันจะถือว่านี่เป็นปัญหาด้านความปลอดภัยขนาดใหญ่ใน Ansible คุณสามารถทำซ้ำตัวอย่างเช่นด้วยคำสั่ง ad-hoc นี้: ansible localhost -m blockinfile -a 'dest=/tmp/ansible_password_leak create=yes block="Password = {{password}}"' -e 'password=secret' นี่คือสิ่งที่เกิดขึ้นในsyslog: ansible-blockinfile: Invoked with directory_mode=None force=None remote_src=None insertafter=None owner=None follow=False marker=# {mark} ANSIBLE MANAGED BLOCK group=None insertbefore=None create=True setype=None content=None serole=None state=present dest=/tmp/ansible_password_leak selevel=None regexp=None validate=None …


1
วนซ้ำอาร์เรย์ตัวแปร Ansible ในเทมเพลต Jinja2
เมื่อ Ansible รวบรวมข้อเท็จจริงเกี่ยวกับโฮสต์ตัวอย่างเช่นจะได้รับการเมานท์ทั้งหมดของโฮสต์: "ansible_mounts": [ { "block_available": 7800291, "block_size": 4096, "block_total": 8225358, "block_used": 425067, "device": "/dev/mapper/foobar", "fstype": "xfs", "inode_available": 16403366, "inode_total": 16458752, "inode_used": 55386, "mount": "/", "options": "rw,seclabel,relatime,attr2,inode64,noquota", "size_available": 31949991936, "size_total": 33691066368, "uuid": "2ebc82cb-5bc2-4db9-9914-33d65ba350b8" }, { "block_available": 44648, "block_size": 4096, "block_total": 127145, "block_used": 82497, "device": "/dev/sda1", "fstype": "xfs", "inode_available": 255595, …
12 ansible  json  jinja 

1
อะไรคือประสิทธิภาพที่สมเหตุสมผลสำหรับเพลย์บุ๊ค Ansible แบบธรรมดาเทียบกับโฮสต์ 100 ~
เราเริ่มมองหา Ansible เพื่อแทนที่การติดตั้ง cfengine2 แบบเก่า ฉันมี playbook ง่ายๆที่: คัดลอกไฟล์ sudoers คัดลอก templated resolv.conf (ป้อนด้วย group_vars และข้อมูล host_vars) ตรวจสอบบริการสองอย่างที่กำลังทำงานอยู่ ตรวจสอบการมีอยู่ของผู้ใช้ท้องถิ่น playbook ใช้เวลา wallclock นานกว่า 4 นาทีในการรันกับเครื่อง 97 เครื่อง (เชื่อมต่อผ่านเครือข่าย 1gig หรือ 10gig ที่รวดเร็วด้วยความหน่วงแฝงของ LAN ย่อย 1 มิลลิวินาที) และใช้ซีพียูกว่า 50% บน VM 2-core memory VM เมื่อฉัน ใช้มัน ใช้เวลาประมาณ 11 วินาทีในการทำงานกับเครื่องเดียวโดยใช้เวลาประมาณ 4sec ของ …

3
Ansible, Chef, Puppet หรือ ____: ซึ่งรองรับ Windows ได้ดีที่สุดและมีขนาดเล็กที่สุด
เราทำส่วนใหญ่ (แต่ไม่เฉพาะ) ชนะเซิร์ฟเวอร์ โดยเฉพาะอย่างยิ่งเราสามารถเริ่มระบบปฏิบัติการและทำเพียงเล็กน้อยหรือไม่มีเลยเพื่อให้พร้อมรับคำสั่ง (เรารู้ว่าเราอาจต้องสร้างอิมเมจพื้นฐานด้วยเอเจนต์หรือเซิร์ฟเวอร์ ssh) จำเป็นต้องสามารถติดตั้ง mongodb, แอพที่ใช้ java, iis config, เป็นต้น เครื่องมือใดมีการสนับสนุน / ชุมชน windows ที่แข็งแกร่งที่สุดและ (ถ้ามี) รอยเท้าเริ่มต้นที่เบาที่สุด คำตอบในการปฏิบัติงาน: Powershell DSC นี่ไม่ใช่เรื่องเต็ม (ไม่ได้ทำทุกอย่างที่พ่อครัว / หุ่นเชิด / อื่น ๆ ทำ) แต่มันตอบสนองความต้องการได้มากใช้งานได้ดีและอยู่นอกกรอบในการชนะ 8.1 / 2012-R2 / 10 เรามีความสุขมากกับมัน

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