사용자 정의 사실은 값을 받지 않습니다.

사용자 정의 사실은 값을 받지 않습니다.


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

잘. 사실은 그 값으로 정해져 있는 것 같은데, 제대로 인쇄할 수 없어서 다른 글에 다시 질문을 올리겠습니다.

관련 정보