在Ansible中实现嵌套循环可以使用with_nested或with_cartesian插件。下面是使用with_nested插件的示例代码:
- name: Nested loop example
hosts: localhost
gather_facts: false
vars:
outer_list:
- item1
- item2
inner_list:
- subitem1
- subitem2
tasks:
- name: Nested loop
debug:
msg: "{{ outer_item }} - {{ inner_item }}"
with_nested:
- "{{ outer_list }}"
- "{{ inner_list }}"
在上面的示例中,我们定义了一个外部列表outer_list和一个内部列表inner_list。然后,在任务中使用with_nested插件将两个列表进行嵌套循环。每次循环,outer_item变量将设置为外部列表中的一个元素,inner_item变量将设置为内部列表中的一个元素。最后,使用debug模块输出嵌套循环的结果。
输出示例:
PLAY [Nested loop example] *********************************************************************************************
TASK [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"
}
PLAY RECAP ************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
这个示例演示了如何在Ansible中实现嵌套循环。你可以根据实际需求修改outer_list和inner_list的内容。