ฉันกำลังพยายามลงทะเบียนตัวแปรในบทบาทหนึ่งแล้วนำไปใช้ในอีกบทบาทหนึ่ง
นี่คือไฟล์ต่าง ๆ ที่ฉันใช้:
playbook.yml
---
- โฮสต์: hostsgroup1
[...]
บทบาท:
- บทบาทที่ 1
- โฮสต์: 127.0.0.1
การเชื่อมต่อ: ท้องถิ่น
บทบาท:
- หน้าที่ 2
บทบาท1/งาน/main.yml
- ชื่อ: ตัวอย่างที่ 1
[...]
- ชื่อ: ตัวอย่างที่ 2
เปลือก:
ตัวแทน qm {{ VM_id }} เครือข่ายรับอินเทอร์เฟซ |grep ที่อยู่ IP |grep '172.20' |grep -oE '((1?[0-9][0-9]?|2[0-4][ 0-9]|25[0-5])\.){3}(1?[0-9][0-9]?|2[0-4][0-9]|25[0-5 ])'
ลงทะเบียน: var_role1
บทบาท2/งาน/main.yml
- ชื่อ: การเพิ่มเซิร์ฟเวอร์ไปยังป้อมปราการ
ansible.buildin.debug:
msg : ทดสอบ {{ var_role1.stdout }}
สำหรับข้อมูล คำสั่งตัวแทน qm ให้ที่อยู่ IP แก่ฉัน และฉันต้องการใช้ในบทบาทที่สอง แต่เห็นได้ชัดว่าตอนนี้มันแสดงข้อผิดพลาดเมื่อฉันเรียกใช้ playbook :
ร้ายแรง: [127.0.0.1]: ล้มเหลว! => {"msg": "งานมีตัวเลือกที่มีตัวแปรที่ไม่ได้กำหนด ข้อผิดพลาดคือ: \"hostvars['proxmoxhosts']\" is undefined\n\nข้อผิดพลาดดูเหมือนจะอยู่ใน '/root/ansible/roles /bastion_add/tasks/main.yml': บรรทัดที่ 3, คอลัมน์ 3 แต่อาจ\nอยู่ที่อื่นในไฟล์ ขึ้นอยู่กับปัญหาทางไวยากรณ์ที่แน่นอน\n\nบรรทัดที่ไม่เหมาะสมคือ:\n\n# ไฟล์งานสำหรับ bastion_add \n- ชื่อ: กำลังเพิ่มเซิร์ฟเวอร์ในป้อมปราการ\n ^ ที่นี่\n"}
โดยสรุป ฉันต้องการใช้ var_role1 ซึ่งลงทะเบียนใน role1 ใน role2