- name: Gather hypervisor details ansible.builtin.shell: cmd: govc ls -L {{ item.moref }} | awk -F/ '{print ${{ item.part }}}' environment: GOVC_INSECURE: '1' GOVC_URL: "{{ vapp['hv.fqdn'] }}" GOVC_USERNAME: "{{ vapp['hv.username'] }}" GOVC_PASSWORD: "{{ vapp['hv.password'] }}" register: govc_inventory loop: - attribute: cluster moref: >- $(govc object.collect -json VirtualMachine:{{ moref_id }} | \ jq -r '.[] | select(.Name == "runtime").Val.Host | .Type + ":" + .Value') part: (NF-1) - attribute: datacenter moref: VirtualMachine:{{ moref_id }} part: 2 - attribute: datastore moref: >- $(govc object.collect -json VirtualMachine:{{ moref_id }} | \ jq -r '.[] | select(.Name == "datastore").Val.ManagedObjectReference | .[].Type + ":" + .[].Value') part: NF - attribute: folder moref: >- $(govc object.collect -json VirtualMachine:{{ moref_id }} | \ jq -r '.[] | select(.Name == "parent").Val | .Type + ":" + .Value') part: 0 # - attribute: host # moref: >- # $(govc object.collect -json VirtualMachine:{{ moref_id }} | \ # jq -r '.[] | select(.Name == "runtime").Val.Host | .Type + ":" + .Value') # part: NF - attribute: network moref: >- $(govc object.collect -json VirtualMachine:{{ moref_id }} | \ jq -r '.[] | select(.Name == "network").Val.ManagedObjectReference | .[].Type + ":" + .[].Value') part: NF - attribute: resourcepool moref: >- $(govc object.collect -json VirtualMachine:{{ moref_id }} | \ jq -r '.[] | select(.Name == "resourcePool").Val | .Type + ":" + .Value') part: 0 loop_control: label: "{{ item.attribute }}" - name: Retrieve hypervisor TLS thumbprint ansible.builtin.shell: cmd: openssl s_client -connect {{ vapp['hv.fqdn'] }}:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -in /dev/stdin | awk -F'=' '{print $2}' register: tls_thumbprint - name: Store hypervisor details in dictionary ansible.builtin.set_fact: vcenter_info: "{{ vcenter_info | default({}) | combine({ item.item.attribute : item.stdout }) }}" loop: "{{ govc_inventory.results }}" loop_control: label: "{{ item.item.attribute }}"