我正在尝试根据收集的事实创建未使用磁盘的列表
-
key | search ("sd")
with_dict: "{{ ansible_devices }}"
但是它仅显示一个磁盘,例如如果服务器有两个未使用的磁盘sdb和sdc,则它仅显示sdb。如何修改代码以包括所有未使用的磁盘。
答案 0 :(得分:0)
您拥有它的方式,set_fact
等于迭代中的“当前”项,这可能就是为什么最终结果中只显示1个磁盘的原因。您需要将disks
设置为元素列表,并将当前item.key
附加到该列表。您可以使用以下语法:
set_fact:
disks: "{{ disks|default([]) + ['/dev/{{item.key}}'] }}"
要了解您在with_dict
子句循环中有多少结果,可以尝试执行debug
任务:
- name: Print disk result
debug:
msg: "/dev/{{item.key}}"
when:
- not item.value.partitions
- not item.value.holders
- not item.value.links.ids
- item.key | search ("sd")
with_dict: "{{ ansible_devices }}"
(缩进可能需要修复,我只是从您的代码中复制出来的)
希望有帮助
答案 1 :(得分:0)
代码---
when:
with_dict: "{{ ansible_devices }}"