繁体   English   中英

在 ansible 中循环 facter_disks

[英]Looping facter_disks in ansible

我试图通过 facter_disks 循环查找具有特定大小的磁盘。 在下面的代码中,想要获得大小为 30 的磁盘 sdb。非常感谢任何帮助


---
- name: sample Playbook
  hosts: localhost
  gather_facts: false
  become: yes
  vars:
    disks:
      - sda:
          model: SYMMETRIX
          size: 55.00 GiB
          size_bytes: 59057111040
          vendor: EMC
        sdb:
          model: SYMMETRIX
          size: 35.00 GiB
          size_bytes: 37581619200
          vendor: EMC
        sdc:
          model: SYMMETRIX
          size: 20.00 GiB
          size_bytes: 21475491840
          vendor: EMC


  tasks:

    - debug:
        msg:
#         - "{{ disks[0]['sda']['size'] }}"
          - "{{ item['sda']['size'] }}"
      with_items: " {{disks}} "

disks var 是一个列表,那么你需要在 sda、sdb、sdc 之前使用“-”。 在这种情况下,如果您想将磁盘用作磁盘列表,那么您可以修改并设置名称属性,如下所示

---
- name: sample Playbook
  hosts: localhost
  gather_facts: false
  become: yes
  vars:
    disks:
    - name: sda
      model: SYMMETRIX
      size: 55.00 GiB
      size_bytes: 59057111040
      vendor: EMC
    - name: sdb
      model: SYMMETRIX
      size: 35.00 GiB
      size_bytes: 37581619200
      vendor: EMC
    - name: sdc
      model: SYMMETRIX
      size: 20.00 GiB
      size_bytes: 21475491840
      vendor: EMC

  tasks:
    - debug:
        msg:
        - "{{ item.name }}"
        - "{{ item.model }}"
        - "{{ item.size }}"
        - "{{ item.size_bytes }}"
        - "{{ item.vendor }}"
      with_items: " {{disks}}"
      when: item.size == "35.00 GiB"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM