如何检索特定词典的名称-Ansible

时间:2018-11-23 23:03:28

标签: ansible ansible-2.x ansible-facts

我需要帮助以仅检索ESXI主机的虚拟机名称。

- name: VM-FACTS
  vmware_vm_facts:
    hostname: "{{ ansible_hostname }}"
    username: "{{ ansible_user }}"
    password: "{{ ansible_password }}"
    validate_certs: False
  delegate_to: localhost
  register: vmfacts

- name: Debug
  debug:
    var: vmfacts.virtual_machines

变量的输出:

ok: [xxxxx] => {
    "vmfacts.virtual_machines": {
        "001-MV-Test": {
            "cluster": null,
            "esxi_hostname": "xxxxx",
            "guest_fullname": "Red Hat Enterprise Linux 7 (64-bit)",
            "ip_address": "10.252.130.196",
            "mac_address": [
                "00:50:56:b3:c5:b0"
            ],
            "power_state": "poweredOn",
            "uuid": "4233910e-4fde-7d1b-765d-b748bf9d1cd9",
            "vm_network": {
                "00:50:56:b3:c5:b0": {
                    "ipv4": [
                        "10.252.130.196"
                    ],
                    "ipv6": [
                        "fe80::250:56ff:feb3:c5b0"
                    ]
                }
            }
        }
    }
}

我只想拥有虚拟机的名称(001-MV-Test)。因为,我想使用vmware_guest_facts检索更多信息。

谢谢!

1 个答案:

答案 0 :(得分:0)

这是您要查找的代码吗?

- debug: msg="{{ item.key }}"
  loop: "{{ vmfacts.virtual_machines|dict2items }}"