在Ansible中,可以使用with_items
来循环遍历一个列表,并返回整个对象。下面是一个示例代码:
---
- name: Loop over a list and return the whole object
hosts: localhost
gather_facts: false
vars:
my_list:
- name: item1
value: 1
- name: item2
value: 2
- name: item3
value: 3
tasks:
- name: Loop over the list and return the whole object
debug:
var: item
with_items: "{{ my_list }}"
在上述示例中,我们定义了一个名为my_list
的变量,其中包含了一个列表对象。然后,使用with_items
循环遍历my_list
列表,并在每次循环中将列表项赋值给item
变量。在debug
任务中,我们输出item
变量的值,这样就可以返回整个对象。
执行上述代码,将会得到如下输出:
TASK [Loop over the list and return the whole object] *****************************************************************************************
ok: [localhost] => (item={'name': 'item1', 'value': 1}) => {
"item": {
"name": "item1",
"value": 1
}
}
ok: [localhost] => (item={'name': 'item2', 'value': 2}) => {
"item": {
"name": "item2",
"value": 2
}
}
ok: [localhost] => (item={'name': 'item3', 'value': 3}) => {
"item": {
"name": "item3",
"value": 3
}
}
从输出中可以看到,循环遍历了my_list
列表的每个对象,并返回了整个对象的内容。