ฉันกำลังใช้ playbooks 2 เล่มที่เชื่อมโยง มีรายละเอียดระบุไว้ด้านล่าง
playbook1: รวบรวมข้อมูลดิบจากหลายเครื่อง
- โฮสต์: target_1
Gather_facts: เท็จ
งาน:
- ชื่อ: ลงทะเบียนค่าใหม่
เปลือก: df -h|awk '{gsub("%","|");print $5 $6}'
ลงทะเบียน: PLAY1VAR
- แก้ปัญหา: msg="{{PLAY1VAR.stdout}}"
- ชื่อ: ลงทะเบียนค่าใหม่
เชลล์: ชื่อโฮสต์
ลงทะเบียน: PLAY2VAR
- แก้ปัญหา: msg="{{PLAY2VAR.stdout}}"
- ชื่อ: ลงทะเบียนโฮสต์จำลองด้วยตัวแปร
add_host:
ชื่อ: "DUMMY_HOST"
PLAY1VAR_NEW: " {{ PLAY1VAR.stdout }}"
- ชื่อ: ลงทะเบียนโฮสต์จำลองด้วยตัวแปร
add_host:
ชื่อ: "DUMMY_HOST_1"
PLAY2VAR_NEW: " {{ PLAY2VAR.stdout }}"
- โฮสต์: target_2
Gather_facts: เท็จ
งาน:
- ชื่อ: ลงทะเบียนค่าใหม่
playbook2: แยกวิเคราะห์ข้อมูลโดยใช้สคริปต์ python
- โฮสต์: localhost
Gather_facts: เท็จ
งาน:
- ชื่อ: สะท้อนเอาต์พุต - ค่าตัวแปร PLAY1
คำสั่ง: python3 /opt/diskspace_watcher/watcher.py '{{hostvars['DUMMY_HOST']['PLAY1VAR_NEW']}}' '{{hostvars['DUMMY_HOST_1']['PLAY2VAR_NEW']}}'
ลงทะเบียน: PLAY2_RESULTS
- แก้ปัญหา: msg="{{PLAY2_RESULTS.stdout}}"
ฉันกำลังส่งตัวแปรสองสามตัวจาก playbook แรกไปยังอีกอันหนึ่ง เมื่อฉันรันสิ่งนี้สำหรับโฮสต์เดียว มันทำงานตามที่คาดไว้ แต่เมื่อพยายามรันสำหรับหลายโฮสต์ มันไม่สามารถส่งผ่านอาร์กิวเมนต์สำหรับโฮสต์ทั้งหมดที่กล่าวถึงในคลัง ไฟล์และเป็นเพียงการเลือกตัวแปรหนึ่งตัวสำหรับโฮสต์เฉพาะ
ฉันกำลังมองหาวิธีที่จะดำเนินการนี้ ความช่วยเหลือ / ความคิดใด ๆ ที่ชื่นชม !!