Это игровая часть роли, которая общается с vmware.
Я пытаюсь установить пользовательский факт (target_vm) которые получают имя виртуальной машины.
Но когда я печатаю это значение с помощью отлаживать модуль кажется пустым.
Я не знаю, что я делаю неправильно в set_fact модуль.
Это Playbook
- delegate_to: локальный хост
стать: нет
делегат_факты: да
вары:
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: Ложь
вм_тип: вм
делегат_к: локальный
зарегистрироваться: виртуальная_информация
no_log: правда
- имя: установить факты target_vm, когда они равны vm-name
set_fact:
target_vm: "{{ my_item.guest_name }}"
with_items: "{{ virtual_info.virtual_machines }}"
когда: my_item.uuid == vm_uuid
loop_control:
loop_var: мой_элемент
- name: Распечатать имя гостя
отлаживать:
сообщение:
- "{{ foo_item.guest_name }}"
- "{{ target_vm | по умолчанию ('') }}"
with_items: "{{ virtual_info.virtual_machines }}"
когда: foo_item.uuid == vm_uuid
loop_control:
loop_var: foo_item
это результат
ЗАДАЧА [vmwaretaks : Собрать только зарегистрированные виртуальные машины] ********************************************** ******************************************************* *****
хорошо: [тествм]
ЗАДАЧА [vmwaretaks: установить факты target_vm, если они равны vm-name] **************************************** ******************************************************* *********
ok: [testvm] => (item={'guest_name': 'TESTVM', 'guest_fullname': 'Red Hat Enterprise Linux 6 (64-разрядная версия)', '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», «кластер»: «JAS-Lab-DEP», «атрибуты»: {}, «теги»: []})
ЗАДАЧА [vmwaretaks : Распечатать имя гостя] ************************************************ ******************************************************* ****************************
ok: [testvm] => (item={'guest_name': 'TESTVM', 'guest_fullname': 'Red Hat Enterprise Linux 6 (64-разрядная версия)', '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», «кластер»: «JAS-Lab-DEP», «атрибуты»: {}, «теги»: []}) => {
"сообщение": [
"ТЕСТВМ",
""
]
}
ОБЗОР ИГРЫ ******************************************************* ******************************************************* *************************************************
testvm: ok=13 изменено=0 недостижимо=0 не удалось=0 пропущено=2 спасено=0 проигнорировано=0
Как вы можете видеть, второе сообщение, которое печатает вывод target_vm var, пусто.
Надеюсь, вы можете помочь. Заранее спасибо!