我很难理解 ansible with_subelements 语法的逻辑,with_subelements 到底做了什么?我在这里查看了有关 with_subelements 的 ansible 文档https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-subelements https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html#with-subelements并没有多大帮助。我还在博客上看到了一本带有 with_subelements 示例的剧本
---
- hosts: cent
vars:
users:
- name: jagadish
comments:
- 'Jagadish is Good'
- name: srini
comments:
- 'Srini is Bad'
tasks:
- name: User Creation
shell: useradd -c "{{ item.1 }}" "{{ item.0.name }}"
with_subelements:
- users
- comments
item.1 和 item.0 指的是什么?
这真是一个糟糕的例子subelements
查找有效。 (并且还具有旧的、不受支持的语法)。
看看这个:
---
- hosts: localhost
gather_facts: no
vars:
families:
- surname: Smith
children:
- name: Mike
age: 4
- name: Kate
age: 7
- surname: Sanders
children:
- name: Pete
age: 12
- name: Sara
age: 17
tasks:
- name: List children
debug:
msg: "Family={{ item.0.surname }} Child={{ item.1.name }} Age={{ item.1.age }}"
with_subelements:
- "{{ families }}"
- children
Task 列出孩子就像一个嵌套循环families
列表(外循环)及以上children
每个族中的子元素(内循环)。
所以你应该提供一个字典列表作为第一个参数subelements
以及您想要在每个其他项目中迭代的子元素的名称。
这边走item.0
(我的例子中的家庭)是一个外部项目,item.1
(我的例子中的孩子)是一个内部项目。
在 Ansible 文档示例中subelements
用于循环用户(外部)并添加多个公钥(内部)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)