';任何';和';全部';jinja2过滤器(Ansible)

';任何';和';全部';jinja2过滤器(Ansible),ansible,jinja2,Ansible,Jinja2,我很难找到列表的基本过滤器:“any”(返回true如果列表中的任何值都可以转换为true),“all”(返回true只有列表中的所有值可以转换为true) 我可以使用my|list | map()| bool模拟any,但它看起来像一个黑客,我在all函数方面遇到了麻烦 UPD: 我发现了这个(又一个奇怪的)黑客 任何:myu列表| map('bool')| max 全部:myu列表| map('bool')| min 有更好的(惯用的)方法吗?是的,你可以只使用all和any 下面是一个

我很难找到列表的基本过滤器:“any”(返回
true
如果列表中的任何值都可以转换为
true
),“all”(返回
true
只有列表中的所有值可以转换为
true

我可以使用
my|list | map()| bool
模拟
any
,但它看起来像一个黑客,我在
all
函数方面遇到了麻烦

UPD:

我发现了这个(又一个奇怪的)黑客

  • 任何:
    myu列表| map('bool')| max
  • 全部:
    myu列表| map('bool')| min

有更好的(惯用的)方法吗?

是的,你可以只使用
all
any

下面是一个使用它们的示例剧本。(这适用于我的Ansible 2.5.1。)


在下面找到了类似的用例,请检查我看到了它。他们希望筛选列表,而不是实现任何/所有功能。
模板字符串时模板错误:没有名为“all”的筛选器。
您使用的是哪个版本的Ansible?
---
- hosts: localhost
  tasks:
   - assert:
       that:
         - mixed | any
         - not (mixed | all)
         - all_true | any
         - all_true | all
         - not (all_false | any)
         - not (all_false | all)
     vars:
       mixed:
         - false
         - true
         - false
       all_true:
         - true
         - true
         - true
       all_false:
         - false
         - false
         - false