ฉันมี playbook ที่ใช้งานได้ดีเมื่อฉันจำกัดโฮสต์เดียว
ansible-playbook -k playbook.yml group1
ฉันต้องสามารถเรียกใช้กับหลายโฮสต์พร้อมกันได้ ไวยากรณ์จะเป็น:
ansible-playbook -k playbook.yml 'group1 group2'
กลุ่มที่ 1 คือกลุ่มที่มีเซิร์ฟเวอร์หลายตัวพร้อมติดตั้งแอปพลิเคชันที่แตกต่างกัน
server1 (นี่คือพร็อกซีเซิร์ฟเวอร์)
เซิร์ฟเวอร์2
เซิร์ฟเวอร์3
เซิร์ฟเวอร์4
กลุ่มที่ 2 คือกลุ่มที่มีเซิร์ฟเวอร์หลายตัวพร้อมติดตั้งแอปพลิเคชันที่แตกต่างกัน
server5 (นี่คือพร็อกซีเซิร์ฟเวอร์)
เซิร์ฟเวอร์6
เซิร์ฟเวอร์7
เซิร์ฟเวอร์8
พร็อกซีคือกลุ่มของพร็อกซีเซิร์ฟเวอร์ทั้งหมดของฉัน
เซิร์ฟเวอร์1
เซิร์ฟเวอร์5
ฉันกำลังสำรวจไดเร็กทอรีเพื่อหารายการไฟล์ที่จะคลายซิป และถามผู้ใช้ว่าต้องการใช้ไฟล์ใด
งานส่งคืนสิ่งนี้:
หยุดงานชั่วคราว:
เลือก NUMBER ของไฟล์เพื่อเลือก:
1--------files/jtt_test/file1.tgz
2--------files/jtt_test/file2.gz
3--------files/jtt_test/file3.tgz
4--------files/jtt_test/file4.jar
5--------files/jtt_test/file5.jar
ผู้ใช้เลือกตัวเลขและนั่นคือไฟล์ที่จะยกเลิกการเก็บถาวร
ฉันวิ่งแข่งกับกลุ่ม 1 ด้วยตัวเองและใช้งานได้ดี
ฉันแข่งกับกลุ่มที่ 1 และกลุ่มที่ 2 พร้อมกัน และเกิดข้อผิดพลาด ฉันสันนิษฐานเพราะมันไม่สามารถส่งตัวแปรของไฟล์ที่เลือกได้
Playbook คือ:
-ชื่อ: อัปเดตไฟล์ UI
โฮสต์: พร็อกซี
งาน:
- หา:
เส้นทาง: "ไฟล์/{{ instance_dir }}"
ลงทะเบียน: ผลลัพธ์
delegate_to: localhost
- set_fact:
my_files: "{{ result.files|แผนที่(attribute='path')|list|sort }}"
- หยุด:
พรอมต์: |
เลือก NUMBER ของไฟล์เพื่อเลือก:
{% สำหรับไฟล์ใน my_files %}
{{ loop.index }}----------{{ ไฟล์ }}
{% สิ้นสุดสำหรับ %}
ลงทะเบียน: ผลลัพธ์
- แก้ปัญหา:
msg: "ไฟล์ที่เลือก: {{ my_files[result.user_input|int - 1] }}"
ร้ายแรง: [proxy.local.test]: ล้มเหลว! => {"msg": "งานมีตัวเลือกที่มีตัวแปรที่ไม่ได้กำหนด ข้อผิดพลาดคือ: 'dict object' ไม่มีแอตทริบิวต์ 'user_input'\n\nข้อผิดพลาดดูเหมือนจะอยู่ใน 'playbook.yml': บรรทัดที่ 30 คอลัมน์ 7 แต่อาจ\nอยู่ที่อื่นในไฟล์ ทั้งนี้ขึ้นอยู่กับปัญหาทางไวยากรณ์ที่แน่นอน\n\nบรรทัดที่ละเมิดดูเหมือนจะเป็น:\n\n\n - ดีบัก:\n ^ ที่นี่\n"}
ฉันไม่แน่ใจว่าจะแก้ปัญหานี้ได้อย่างไร