在Ansible中,可以使用with_nested
和with_items
来实现清单的嵌套循环加上列表的外部循环。
以下是一个示例代码:
---
- name: Nested loop example
hosts: localhost
gather_facts: false
vars:
outer_list:
- item1
- item2
inner_list:
- subitem1
- subitem2
tasks:
- name: Print nested loop
debug:
msg: "{{ outer_item }} - {{ inner_item }}"
with_nested:
- "{{ outer_list }}"
- "{{ inner_list }}"
在此示例中,我们定义了两个变量outer_list
和inner_list
,它们分别表示外部循环和嵌套循环的列表。
然后,在任务Print nested loop
中,我们使用with_nested
来遍历外部循环和内部循环的列表。在每次迭代中,Ansible将为outer_item
和inner_item
设置相应的值,并打印它们。
当运行此Playbook时,输出将是:
TASK [Print nested loop] ********************************************************
ok: [localhost] => (item=[u'item1', u'subitem1']) => {
"msg": "item1 - subitem1"
}
ok: [localhost] => (item=[u'item1', u'subitem2']) => {
"msg": "item1 - subitem2"
}
ok: [localhost] => (item=[u'item2', u'subitem1']) => {
"msg": "item2 - subitem1"
}
ok: [localhost] => (item=[u'item2', u'subitem2']) => {
"msg": "item2 - subitem2"
}
如上所示,Ansible通过嵌套循环迭代了外部循环和内部循环的列表,并打印了每个迭代的结果。