通过从YAML文件加载变量,将变量作为extra_args传递。 我尝试了以下但是它不起作用:
- name: Check if variable are of type boolean
fail:
msg: "Variable '{{ item }}' is not a boolean"
when: item is not bool
with_items: "{{ required_boolean_vars }}"
此外,类似于布尔值,我怎么能对整数,字典和对象类型做同样的事情。
答案 0 :(得分:1)
有一个通用type_debug
filter返回类型,因此对于布尔条件是:
when: "item | type_debug == 'bool'"`
另一种方式:
when: item is sameas true or item is sameas false
字典:
when: item is mapping
列表:
when: item is iterable
此外,上述条件检查item
是否为标题中提到的布尔值。如果您想根据代码建议测试相反的情况,请添加not
答案 1 :(得分:0)
如果不是boolean类型的变量
,我发现失败任务的变通方法- name: Check if variable are of type boolean
assert:
that: "{{ item }} == false or {{ item }} == true"
msg: "Variable {{ item }} is not of type boolean"
with_items: "{{ required_boolean_vars }}"
其中required_boolean_vars包含我想要检查的变量列表。
答案 2 :(得分:0)
确保变量不是布尔值的正确方法是使用与此相同的Jinja2测试:
when: item is not sameas true and item is not sameas false