如何在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地址:
-任何

  • 见过滤器

  • 见测试


我尝试了这个方法,但发现一个错误:没有名为“in”的测试