如何在ansible中基于多个过滤器获取列表的差异?
我有一张物品清单如何在ansible中基于多个过滤器获取列表的差异?,ansible,yaml,ansible-filter,Ansible,Yaml,Ansible Filter,我有一张物品清单 List1: - name: Rule1 description: Description1 sources: ip_addresses: - any - name: Rule2 description: Description2 sources: ip_addresses: - any - name: Rule3 description: Description3 sources: ip_addresse
List1:
- name: Rule1
description: Description1
sources:
ip_addresses:
- any
- name: Rule2
description: Description2
sources:
ip_addresses:
- any
- name: Rule3
description: Description3
sources:
ip_addresses:
- any
- name: Rule4
description: Description4
sources:
ip_addresses:
- any
我想通过省略具有特定描述的规则来创建一个新列表,我可以使用以下方法为单个描述创建新列表:
List2: "{{
List1 | difference(
List1
| selectattr('description')
| selectattr('description', 'match', Description1)
| list) }}"
我不知道如何对多个描述这样做,例如,如果我们需要同时省略规则1和规则2。我能够做到这一点的一种方法是在省略规则1后创建列表2,然后通过在列表2上使用类似的过滤器创建一个列表3。创建一个要省略的描述列表。比如说
省略描述:
-说明1
-说明2
那么下面的任务就完成了
-设置事实:
清单2:{{List1 | rejectattr('description','in',省略| desc)| list}}”
-调试:
变量:列表2
给予
List2:
-描述:描述3
名称:规则3
资料来源:
ip地址:
-任何
-描述:描述4
名称:规则4
资料来源:
ip地址:
-任何
- 见过滤器
- 见测试