';任何';和';全部';jinja2过滤器(Ansible)
我很难找到列表的基本过滤器:“any”(返回';任何';和';全部';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 下面是一个
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