Я запрашиваю окно vmware ESX, чтобы получить идентификаторы дисков, используя Ansible, однако я не могу l oop поверх stdout_lines, который выглядит стандартным списком.
Здесь это мой запрос:
- name: Collect vSAN disk list
raw: esxcli storage core device list | grep Devfs
delegate_to: esx_box
register: disk_list
- name: Print disk list
debug:
msg: "{{ disk_list.stdout_lines }}"
Вывод для отладки выглядит следующим образом:
ok: 1/1 [esx_box] => {
"msg": [
" Devfs Path: /vmfs/devices/disks/naa.12354ABCDEFGHIJK",
" Devfs Path: /vmfs/devices/disks/naa.12354ABCDEFGHIJK",
" Devfs Path: /vmfs/devices/disks/t10.ATA_____DELLBOSS_VD_____________________________12354ABCDEFGHIJK",
" Devfs Path: /vmfs/devices/disks/naa.12354ABCDEFGHIJK",
" Devfs Path: /vmfs/devices/disks/naa.12354ABCDEFGHIJK",
" Devfs Path: /vmfs/devices/disks/naa.12354ABCDEFGHIJK",
" Devfs Path: /vmfs/devices/genscsi/naa.12354ABCDEFGHIJK",
" Devfs Path: /vmfs/devices/genscsi/eui.12354ABCDEFGHIJK"
]
}
Теперь я хотел l oop disk_list.stdout_lines
следующим образом
- name: Loop over stdout_lines
debug:
msg: "{{ item }}"
loop: "{{ disk_list.stdout_lines }}"
Но я не получаю никакого вывода для вышеуказанного шага. Я не уверен, что здесь происходит. stdout_lines
выглядит правильным списком python с элементами в кавычках, однако l oop с {{ item }}
просто не превышает l oop.