使用Ansible的条件循环和逻辑运算符,检查循环中所有项是否为真。
示例代码:
- hosts: all
vars:
my_list:
- item1: true
- item2: false
- item3: true
tasks:
- name: Check if all items are true
debug:
msg: "All items are true"
when: my_list | map(attribute='values') | map('bool') | select | list | length == my_list | length
在以上示例中,my_list变量中包含三个项,每个项都有一个布尔值。使用“map”过滤器将所有布尔值作为一个列表返回,并使用“length”函数计算列表的长度。如果列表的长度等于my_list的长度,则认为所有项都为真,执行任务并输出消息“所有项目都为真”。