ฉันใช้ คำตอบ และรักมัน สิ่งที่ทำให้ฉันติดใจในตอนแรกคือ ansible_facts. Playbook ง่าย ๆ เล่มเดียวจะส่งคืนข้อมูลจำนวนมากเกี่ยวกับระบบที่กำหนด ก่อนหน้านี้ฉันเพิ่งบันทึกผลลัพธ์และ grep'd สำหรับ คีย์: ค่า
คู่ที่ฉันต้องการ น่าจะมีวิธีที่ดีกว่าในการทำเช่นนั้น
ในตัวอย่างการกำหนดค่าที่ง่ายที่สุด คุณเก็บ "รายการ" ของโฮสต์ที่คุณต้องการเรียกใช้ Ansible มันเป็นสิ่งที่ชอบ:
[my_hosts]
host1.mydomain.com
host2.mydomain.com
...
จากนั้นคุณสามารถเปิด Ansible "playbook" ได้ my_hosts
และจะกระทบทุกโฮสต์ที่คุณกำหนดค่าในบล็อกนั้น Playbook เป็นเพียงการกำหนดค่า YAML ที่มีคำสั่ง ตัวแปร และการจัดรูปแบบที่ Ansible เข้าใจ มันไม่ใช่เชลล์สคริปต์ เป็น "วิธี" ที่จะบอก Ansible ว่าควรทำอย่างไรกับโฮสต์ ฉันใช้เวลาสักครู่เพื่อโอบศีรษะไว้รอบ ๆ
อีกครั้ง เพื่อความง่าย คุณสามารถสร้าง playbook ที่รันคำสั่งเชลล์และรัน playbook นั้นในทุกโฮสต์ นี่คือ playbook "เวลาทำงาน" ที่ฉันใช้บ่อย
---
- โฮสต์: ทั้งหมด
Gather_facts: เท็จ
งาน:
- ชื่อ: สถานะการออนไลน์สำหรับโฮสต์
เชลล์: เวลาทำงาน
ลงทะเบียน: เอาท์พุท
- แก้ปัญหา: var=output.stdout_lines
# พิมพ์บรรทัดที่จัดรูปแบบสำหรับการขุด grep / sed
- แก้ปัญหา: msg="grepme {{ inventory_hostname }}:{{ output.stdout_lines}}"
สิ่งต่าง ๆ มีส่วนร่วมมากขึ้น แต่การเริ่มต้นครั้งแรกก็น่ากลัว การทำสิ่งต่าง ๆ ให้เรียบง่ายด้วยคำสั่ง shell อาจทำให้เท้าของคุณเปียกได้ แต่เมื่อคุณทำมากกว่าสิ่งง่าย ๆ คุณควรมองหาวิธีการทำสิ่งต่าง ๆ ที่ "เข้าใจได้" มากขึ้นซึ่งซับซ้อนและยากกว่าที่จะทำงานด้วย แต่พวกเขาก็มีผลตอบแทน