我很难理解ansible with_subelements语法的逻辑,with_subelements究竟做了什么?我在http://docs.ansible.com/ansible/playbooks_loops.html#looping-over-subelements上查看了有关with_subelements的ansible文档,并没有太大帮助.我还在博客上看到了带有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
Run Code Online (Sandbox Code Playgroud)
item.1和item.0引用了什么?
Kon*_*rov 50
这是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
Run Code Online (Sandbox Code Playgroud)
任务列表子项就像一个嵌套循环families列表(外部循环)和children每个族中的子元素(内部循环).
因此,您应该提供一个dicts列表作为第一个参数subelements和要在每个外部项内迭代的子元素的名称.
这种方式item.0(我的例子中的族)是一个外部项目item.1(我的例子中的子项)是一个内部项目.
在Ansible文档中,示例subelements用于循环用户(外部)并添加几个公钥(内部).
| 归档时间: |
|
| 查看次数: |
20797 次 |
| 最近记录: |