
這是與 vmware 對話的角色的劇本部分。
我正在嘗試設定一個(target_vm)接收虛擬機器名稱的自訂事實。
但是當我列印它的價值時偵錯模組似乎是空的。
我不知道我做錯了什麼設定事實模組。
這是劇本
- delegate_to: localhost
become: no
delegate_facts: yes
vars:
vc_hostname: 'vcenter.bio.local'
vc_username: 'bio.local\ansible'
vc_password: "{{ v_pass }}"
vm_uuid: '4217200F-46D2-C9FD-E7FD-768D21B327E8' | lower
block:
- name: Gather only registered virtual machines
vmware_vm_info:
hostname: '{{ vc_hostname }}'
username: '{{ vc_username }}'
password: '{{ vc_password }}'
validate_certs: False
vm_type: vm
delegate_to: localhost
register: virtual_info
no_log: true
- name: Set facts target_vm when equal vm-name
set_fact:
target_vm: "{{ my_item.guest_name }}"
with_items: "{{ virtual_info.virtual_machines }}"
when: my_item.uuid == vm_uuid
loop_control:
loop_var: my_item
- name: Print Guest Name
debug:
msg:
- "{{ foo_item.guest_name }}"
- "{{ target_vm | default ('') }}"
with_items: "{{ virtual_info.virtual_machines }}"
when: foo_item.uuid == vm_uuid
loop_control:
loop_var: foo_item
這是輸出
TASK [vmwaretaks : Gather only registered virtual machines] ***********************************************************************************************
ok: [testvm]
TASK [vmwaretaks : Set facts target_vm when equal vm-name] ************************************************************************************************
ok: [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': []})
TASK [vmwaretaks : Print Guest Name] **********************************************************************************************************************
ok: [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': []}) => {
"msg": [
"TESTVM",
""
]
}
PLAY RECAP ************************************************************************************************************************************************
testvm : ok=13 changed=0 unreachable=0 failed=0 skipped=2 rescued=0 ignored=0
正如您所看到的,列印 target_vm var 輸出的第二個訊息為空
希望您能提供幫助。先致謝!
答案1
出色地。看來事實是用它的值設定的,但我無法正確列印它,所以我將在其他帖子中再次暴露這個問題。