ฉันมีไฟล์ main_task.yml ที่ใช้งานง่ายซึ่งวนซ้ำจาก main.yml
สินค้าคงคลัง.ini
[พอร์ต_22]
192.168.0.189
192.168.0.199
[พอร์ต_222]
192.168.0.199
[พอร์ต_888]
192.168.0.200
main_task.yml
---
- ชื่อ: "เรียกใช้สิ่งนี้บนโฮสต์ {{ item }}"
debug: msg= "สิ่งนี้ทำงานบนโฮสต์ p{{ item }} เท่านั้น"
เมื่อ: "{{ รายการ }} ใน group_names"
#เมื่อ: group_names | เลือก ("รายการ | สตริง") | รายการ | นับ > 0
main.yml
- โฮสต์: port_22, port_222
การเชื่อมต่อ: ท้องถิ่น
วาร์:
พอร์ต:
- 22
- 222
งาน:
- ชื่อ: การยืนยัน
include_tasks: main_task.yml
วนซ้ำ: "{{ พอร์ต }}"
มันบ่น
[คำเตือน]: ข้อความแสดงเงื่อนไขไม่ควรมีตัวคั่นเทมเพลต jinja2 เช่น {{ }} หรือ {% %} พบ: {{ รายการ }} ใน group_names
เมื่อลบเทมเพลต jinja2 จะได้สิ่งนี้:
การข้าม: [192.168.0.189]
ฉันจะบรรลุสิ่งนี้ได้อย่างไร ?
อัปเดต:
แก้ไข main.yml
- โฮสต์: host_22, host_222
#การเชื่อมต่อ: ท้องถิ่น
วาร์:
พอร์ต:
- 22
งาน:
- ชื่อ: ปรับใช้ไฟล์ที่มีที่อยู่เครือข่ายในนั้น
include_tasks: main_task.yml
วนซ้ำ: "{{ พอร์ต }}"
แก้ไข main_task.yml แล้ว
- ชื่อ: "เรียกใช้สิ่งนี้บนโฮสต์ {{ item }}"
debug: msg= "สิ่งนี้ทำงานบนโฮสต์ p{{ item }} เท่านั้น"
เมื่อ: รายการใน group_names
#เมื่อ: group_names | เลือก ("รายการ | สตริง") | รายการ | นับ > 0
- ชื่อ: ชื่อโฮสต์ของฉัน
เปลือก: ชื่อโฮสต์; ชื่อโฮสต์ -I
เมื่อ: รายการใน group_names
ลงทะเบียน: hostname_result
- แก้ปัญหา:
var: hostname_result.stdout_lines
เอาท์พุต:
ansible-playbook main.yaml -i สินค้าคงคลัง.ini -u ราก
เล่น [host_22, host_222] ******************************************** ************************************************** ************************************************** ************************************************** ************************************************** *****
TASK [รวบรวมข้อเท็จจริง] ********************************************* ************************************************** ************************************************** ************************************************** ************************************************** ******
ตกลง: [192.168.0.189]
ตกลง: [192.168.0.199]
งาน [การตรวจสอบ] *********************************************** ************************************************** ************************************************** ************************************************** *****************************
รวม: /home/ubuntu/ansible/test/testing_loo/main_task.yml สำหรับ 192.168.0.199, 192.168.0.189 => (item=22)
TASK [เรียกใช้บน 22 โฮสต์] ****************************************** ************************************************** ************************************************** ************************************************** ************************************************** ****
การข้าม: [192.168.0.199]
การข้าม: [192.168.0.189]
งาน [ชื่อโฮสต์ของฉัน] ************************************************ ************************************************** ************************************************** ************************************************** ************************************************** **********
การข้าม: [192.168.0.199]
การข้าม: [192.168.0.189]
งาน [แก้ไขข้อบกพร่อง] *********************************************** ************************************************** ************************************************** ************************************************** ************************************************** ***************
ตกลง: [192.168.0.199] => {
"hostname_result.stdout_lines": "ไม่ได้กำหนดตัวแปร!"
}
ตกลง: [192.168.0.189] => {
"hostname_result.stdout_lines": "ไม่ได้กำหนดตัวแปร!"
}