如何在 Ansible 的列表中查找列表成员身份

Ran*_*ndy 3 ansible ansible-playbook

我有一个列表,我想用它来查看列表中的任何成员是否在第二个列表中,并在 Ansiblewhen子句中使用它。这可以在单线中完成吗?

- name: task include moar ansible
  include: more_tasks.yaml
  when: any_member_of_this_list in some_other_list
Run Code Online (Sandbox Code Playgroud)

udo*_*dan 6

这很容易。Ansible引入了一些额外的 Jinja 过滤器,其中之一是intersect,它返回包含在两个列表中的唯一元素。由于空列表是假的,非空列表是真,所以没有比这更多的事情要做:

when: any_member_of_this_list | intersect(some_other_list)
Run Code Online (Sandbox Code Playgroud)