簡體   English   中英

如何迭代 Ansible 列表字典

[英]How to iterate on an Ansible dictionary of lists

在 Ansible 任務中,我想迭代每個字典類別的所有子元素。 我使用的容器如下所示:

myDict:
  - {category1: el00, category2: [el10, el11], category3: [el20, el21, el22, el23]}

如果您想考慮變量myDict是一個列表並且可能有更多項目的事實,請創建一個文件

shell> cat iteration.yml
- debug:
    msg: "{{ i.0 }} {{ i.1 }} {{ i.2 }}"
  with_nested:
    - "{{ item.category1 }}"
    - "{{ item.category2 }}"
    - "{{ item.category3 }}"
  loop_control:
    loop_var: i

並將其包含在循環中

    - include_tasks: iteration.yml
      loop: "{{ myDict }}"

  msg: el00 el10 el20
  msg: el00 el10 el21
  msg: el00 el10 el22
  msg: el00 el10 el23
  msg: el00 el11 el20
  msg: el00 el11 el21
  msg: el00 el11 el22
  msg: el00 el11 el23

如果你想迭代列表中的第一個項目,那么下面的任務會給出相同的結果

    - debug:
        msg: "{{ item.0 }} {{ item.1 }} {{ item.2 }}"
      with_nested:
        - "{{ myDict.0.category1 }}"
        - "{{ myDict.0.category2 }}"
        - "{{ myDict.0.category3 }}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM