在Ansible中,可以使用when
语句来检查属性是否存在,如果不存在,则跳过循环中的行。
以下是一个示例代码:
- name: Example playbook
hosts: all
vars:
my_list:
- name: item1
property1: value1
- name: item2
tasks:
- name: Loop over my_list
debug:
msg: "Property1: {{ item.property1 }}"
loop: "{{ my_list }}"
when: item.property1 is defined
在上面的示例中,我们首先定义了一个包含两个元素的my_list
变量。第一个元素具有property1
属性,而第二个元素没有该属性。
然后,在Loop over my_list
任务中,我们使用loop
关键字循环遍历my_list
。使用when
语句检查item.property1
是否被定义。如果被定义,则打印出Property1: {{ item.property1 }}
。
由于第二个元素没有property1
属性,所以在循环时会跳过该行。只有第一个元素会输出相应的属性值。
这就是如何在Ansible中使用when
语句来跳过循环中的行,如果属性不存在的解决方法。