นี่เป็นส่วนหนึ่งของ playbook ของบทบาทที่พูดคุยกับ vmware
ฉันกำลังพยายามตั้งค่าข้อเท็จจริงที่กำหนดเอง (target_vm) ที่ได้รับชื่อเครื่องเสมือน
แต่เมื่อฉันพิมพ์มันมีค่ากับโมดูลดีบั๊ก มันดูเหมือนจะว่างเปล่า
ดูเหมือนว่า set_fact ถูกตั้งค่าอย่างถูกต้องเนื่องจากเอาต์พุตการดีบักแสดงขึ้น {"ansible_facts": {"target_vm": "TESTVM"}.
ฉันได้สร้างงาน Fail ที่เปิดเผยว่ามีการตั้งค่าข้อเท็จจริง target_vm หรือไม่
นี่คือเพลย์บุ๊ก
- delegate_to: localhost
กลายเป็น: ไม่
delegate_facts: ใช่
วาร์:
vc_hostname: 'vcenter.bio.local'
vc_username: 'bio.local\ansible'
vc_password: "{{ v_pass }}"
vm_uuid: '4217200F-46D2-C9FD-E7FD-768D21B327E8' | ต่ำกว่า
บล็อก:
- ชื่อ: รวบรวมเฉพาะเครื่องเสมือนที่ลงทะเบียนแล้ว
vmware_vm_info:
ชื่อโฮสต์: '{{ vc_hostname }}'
ชื่อผู้ใช้: '{{ vc_username }}'
รหัสผ่าน: '{{ vc_password }}'
validate_certs: เท็จ
vm_type: vm
delegate_to: localhost
ลงทะเบียน: virtual_info
no_log: จริง
- ชื่อ: รับชื่อ VM จาก UUID
set_fact:
target_vm: "{{ my_item.guest_name }}"
วนซ้ำ: "{{ virtual_info.virtual_machines }}"
เมื่อ: my_item.uuid == vm_uuid
loop_control:
loop_var: my_item
delegate_to: localhost
delegate_facts: จริง
- ชื่อ: ตรวจสอบว่าชื่ออินเทอร์เฟซถูกตั้งค่าแล้ว
ล้มเหลว:
msg: "ไม่สามารถกำหนดชื่อ target_vm ได้!"
เมื่อ: ไม่ได้กำหนด target_vm
- ชื่อ: ผลงานพิมพ์
แก้ปัญหา:
msg: "ชื่อ VM คือ: {{ target_vm }}"
นี่คือผลลัพธ์
TASK [vmwaretaks : รับชื่อ VM จาก UUID] **************************************** ***********************************************
โอเค: [testvm] => (item={'guest_name': 'TESTVM', 'guest_fullname': 'Red Hat Enterprise Linux 6 (64-bit)', 'power_state': 'poweredOn', 'ip_address': '192.168 .54.32', 'mac_address': ['00:32:52:97:e9:c8'], 'uuid': '4217200f-46d2-c9fd-e7fd-768d21b327e8', 'vm_network': {'00:32: 52:97:e9:c8': {'ipv4': ['192.168.54.32'], 'ipv6': ['fe80::250:56ff:fe97:d4c3']}}, 'esxi_hostname': 'b3j15esx05. bio.local', 'cluster': 'JAS-Lab-DEP', 'attributes': {}, 'tags': []}) => {"ansible_facts": {"target_vm": "TESTVM"}, " ansible_loop_var": "my_item", "changed": false, "my_item": {"attributes": {}, "cluster": "JAS-Lab-DEP", "esxi_hostname": "b3j15esx05.bio.local", " guest_fullname": "Red Hat Enterprise Linux 6 (64 บิต)", "guest_name": "TESTVM", "ip_address": "192.168.54.32", "mac_address": ["00:32:52:97:e9: c8"], "power_state": "poweredOn", "แท็ก": [], "uuid": "4217200f-46d2-c9fd-e7fd-768d21b327e8", "vm_network": {"00:32:52:97:e9 :c8": {"ipv4": ["192.168.54.32"], "ipv6": ["fe80::250:56ff:fe97:d4c3"]}}}}
งาน [vmwaretaks : ตรวจสอบชื่ออินเทอร์เฟซถูกตั้งค่า] **************************************** ****************************************
ร้ายแรง: [testvm]: ล้มเหลว! => {"change": false, "msg": "ไม่สามารถกำหนดชื่อ target_vm ได้!"}
เล่น RECAP ************************************************ ************************************************** ********************
testvm : ok=13 เปลี่ยนแปลง=0 ไม่สามารถเข้าถึงได้=0 ล้มเหลว=1 ข้าม=2 ช่วยชีวิต=0 ละเว้น=0