
Este es un manual de estrategias que forma parte de un rol que habla con vmware.
Estoy intentando establecer un hecho personalizado (target_vm)que reciba el nombre de la máquina virtual.
Pero cuando imprimo su valor con eldepurarmódulo parece estar vacío.
No sé qué estoy haciendo mal en elestablecer_hechomódulo.
Este es el libro de jugadas
- 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
Esta es la salida
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
Como puede ver, el segundo mensaje que imprime la salida de target_vm var está vacío.
Espero que puedan ayudar. ¡Gracias de antemano!
Respuesta1
Bien. Parece que el dato está fijado con su valor pero no logro imprimirlo correctamente así que expondré la pregunta nuevamente en otro post.