2017-06-23 15 views
1

私はESXiから仮想マシンのファクトをAnsibleで取得しようとしました。ここ マイ脚本:危険なモジュールvmware_vm_factsからフォーマットされたファクトを取得するには?

- name: VM 
    local_action: 
    module: vmware_vm_facts 
    hostname: '{{ vcenter_hostname }}' 
    username: root. 
    password: '{{ esxi_root_passw }}' 
    validate_certs: no 
    register: instance_vm_facts 

- debug: var=instance_vm_facts 

と私はいくつかの結果だ:

ok: [localhost -> localhost] => { "changed": false, "invocation": { "module_args": { "hostname": "192.168.210.63", "password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER", "username": "root", "validate_certs": false } }, "virtual_machines": { "vmware-test-1": { "guest_fullname": "Red Hat Enterprise Linux 6 (64-bit)", "ip_address": "192.168.108.91", "power_state": "poweredOn" }, "vmware-test-2”: { "guest_fullname": "Red Hat Enterprise Linux 6 (64-bit)", "ip_address": "192.168.109.24", "power_state": "poweredOn" } } }

しかし、私は名前だけをフィルタリングし、ip_addressに方法を理解しますか? with_itemとwith_dictを試しましたが、失敗しました。

答えて

1

仮想マシンを反復するには、instance_vm_facts.virtual_machinesを使用する必要があります。 それはリストではありません、あなたは...、

- debug: 
    msg: "IP of {{ item.key }} is {{ item.value.ip_address }}" 
    with_dict: "{{ instance_vm_facts.virtual_machines }}" 
+0

おかげで多くのことをwith_dictを使用して、item.value.power_stateitem.value.ip_address、または電源状態でitem.keyとIPと名前をアクセスするために持っています!それは期待どおりに動作します! –

+0

あなたはその質問に答えてマークすることができますか? – zigarn

関連する問題