Ansible-创建未使用磁盘的列表

时间:2019-02-22 01:36:02

标签: ansible

我正在尝试根据收集的事实创建未使用磁盘的列表

-

           key | search ("sd")

     with_dict: "{{ ansible_devices }}"

但是它仅显示一个磁盘,例如如果服务器有两个未使用的磁盘sdb和sdc,则它仅显示sdb。如何修改代码以包括所有未使用的磁盘。

2 个答案:

答案 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 }}"