python - 在 Ansible 中循环 stdout_lines
问题描述
我正在查询一个 vmware ESX 框以使用 Ansible 获取磁盘 ID,但是,我无法遍历似乎是标准列表的 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"
]
}
现在,我想循环disk_list.stdout_lines
如下
- name: Loop over stdout_lines
debug:
msg: "{{ item }}"
loop: "{{ disk_list.stdout_lines }}"
但是,我没有得到上述步骤的任何输出。我不确定这里发生了什么。stdout_lines
看起来是一个带有引号的正确 python 列表,但是循环根本{{ item }}
不会循环。
解决方案
使用时: with_items 它应该可以工作。
推荐阅读
- c - 编译和打开时不显示窗口
- flutter - 为什么颤振插件不能在代码中工作?
- file - 如何批量制作具有某些内容的文件?
- delphi - 如何将应用程序 Delphi 与 Google Calendar API 集成,如何插入日历?
- c# - 从 2 个表中获取 oracle 中的数据,其中一个或两个表中不保证任何条目
- html - 使图像适合具有固定宽度的容器 - 确保 IE11 不会拉伸或扭曲它们
- python - OR-Tools 护士调度 shift_scheduling_sat.py 问题/问题
- c# - 如何从 ExecuteAsync 的代码中取消 dotnet 核心工作进程?
- unit-testing - 带有@Quarkus 注释的测试用例抛出错误(也使用 Intellij idea 插件)
- selenium-chromedriver - 无法使用 findElements()、filter() 或 selectLink() 定位特定的 HTML 元素