下面是一个使用Ansible从两个列表中创建列表的示例代码:
- name: Create list from two lists
hosts: localhost
gather_facts: false
vars:
list1:
- name: item1
- name: item2
list2:
- attr: value1
- attr: value2
tasks:
- name: Create new list
set_fact:
new_list: "{{ list1 | zip(list2) | map('combine') | list }}"
- name: Print new list
debug:
var: new_list
在上面的示例中,我们有两个列表:list1
和list2
。list1
包含了name
属性,而list2
包含了attr
属性。
我们使用Ansible的set_fact
模块来创建一个新的列表new_list
。首先,我们使用zip
过滤器将两个列表进行配对,然后使用map
过滤器将配对的元素进行合并。最后,使用list
过滤器将结果转换为列表。
最后,我们使用debug
模块来打印新的列表new_list
。
运行上述代码后,将输出以下结果:
TASK [Print new list] *****************************************************************************************
ok: [localhost] => {
"new_list": [
{
"attr": "value1",
"name": "item1"
},
{
"attr": "value2",
"name": "item2"
}
]
}
新的列表new_list
包含了从两个列表中提取的属性。
上一篇:Ansible从jinja2模板