我很难找到列表的基本过滤器:“ any”(如果列表中的任何值都可以强制转换为true
,则返回true
),“ all”(返回{{1}) }只能将列表中的所有值强制转换为true
。
我可以使用true
来模拟any
,但是看起来像是黑客,我在使用my_list|map()|bool
函数时遇到了麻烦。
UPD:
我发现了这个(另一个奇怪的)黑客。
all
my_list|map('bool')|max
有更好的(惯用的)方法吗?
答案 0 :(得分:0)
是的,您只能使用all
和any
。
这是使用它们的示例剧本。 (这对我适用于Ansible 2.5.1。)
---
- 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