在Ansible中,使用with_together
循环迭代可以同时迭代多个列表,并将相同索引位置的元素作为变量传递给任务。以下是一个包含代码示例的解决方法:
假设我们有两个列表list1
和list2
,并且我们想要打印它们的元素:
- name: Example with_together loop
hosts: localhost
gather_facts: false
vars:
list1:
- item1
- item2
- item3
list2:
- value1
- value2
- value3
tasks:
- name: Print items
debug:
msg: "{{ item.0 }} - {{ item.1 }}"
with_together:
- "{{ list1 }}"
- "{{ list2 }}"
在上面的示例中,我们使用with_together
循环迭代了list1
和list2
两个列表,并使用item.0
和item.1
来引用当前迭代的元素。{{ item.0 }}
引用list1
中的元素,{{ item.1 }}
引用list2
中的元素。
运行以上代码示例,将打印如下输出:
TASK [Print items] **********************************************************************************************************************************************************
ok: [localhost] => (item=[u'item1', u'value1']) => {
"msg": "item1 - value1"
}
ok: [localhost] => (item=[u'item2', u'value2']) => {
"msg": "item2 - value2"
}
ok: [localhost] => (item=[u'item3', u'value3']) => {
"msg": "item3 - value3"
}
可以看到,list1
和list2
的元素被正确地打印出来了。