Как я могу получить IP и Ma c адреса из vmware_guest_info - PullRequest
0 голосов
/ 10 февраля 2020

Я думаю, это показывает мое непонимание организации данных 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 из этой структуры данных?

...