使用groups.all
返回清单中包含所有主机的列表,是否可以将包含唯一字符串的列表提取到另一个列表中。
当我调试groups.all
时,我会在清单中找到包含所有主机的列表。
"groups.all": [
"host-1-unique",
"host-2",
"host-3",
"host-4-unique",
"host-5",
"host-6-unique",
"host-7"
],
在我的main.yml
中- set_fact:
new_list: []
- set_fact: "{{ new_list }} + [ '{{ item }}' ]"
with_items: groups.all
when: 'unique' in groups.all
我得到以下结果:
{
"skipped": true,
"_ansible_no_log": false,
"skip_reason": "Conditional result was False",
"_ansible_item_result": true,
"item": "groups.all",
"changed": false
}
有谁知道为什么会跳过这个? 如何从列表中提取,返回具有唯一字符串的元素列表?
答案 0 :(得分:3)
您可能想了解Jinja2 filters(内置和Ansible提供)。
- set_fact:
new_list: "{{ groups['all'] | select('search','unique') | list }}"