Я думаю, это показывает мое непонимание организации данных yaml. Я использую модуль vmware_guest_info, чтобы попытаться найти MA C и IP-адреса моих хостов (хосты еще не имеют ОС - не могут go этот маршрут).
Я могу получить IP, но я не могу покопаться в выводе, чтобы вытащить MA C. Я могу получить это в совокупности, но я предпочел бы сделать это правильно, а не просто grep для того, что я хочу. Вот что у меня получилось:
- name: Pull info
vmware_guest_info:
... <snipped>
name: "{{ inventory_hostname }}"
datacenter: "{{ env }}"
schema: "vsphere"
#properties: ["guest.ipAddress", "guest.net.macAddress"]
#properties: ["guest.ipAddress", "guest.net[0].macAddress"]
properties: ["guest.ipAddress", "guest.net"]
register: VMGUEST
delegate_to: localhost
- debug:
var: VMGUEST
Вышеприведенные запуски с активной третьей строкой "свойств". Но если я вместо этого использую один из двух других, я получу:
Information gathering failed with exception list indices must be integers or slices, not str
Или
Property 'guest.net[0].macAddress' not found.
Пример структуры данных:
instance:
guest:
ipAddress: 10.35.146.106
net:
- _vimtype: vim.vm.GuestInfo.NicInfo
connected: true
deviceConfigId: -1
dnsConfig: null
ipAddress: []
ipConfig:
_vimtype: vim.net.IpConfigInfo
autoConfigurationEnabled: null
dhcp: null
ipAddress: []
macAddress: 46:c5:55:97:3a:4b
netBIOSConfig: null
network: null
- _vimtype: vim.vm.GuestInfo.NicInfo
connected: true
...
Итак, обучаем мне, пожалуйста: как мне правильно получить macaddress из этой структуры данных?