在Ansible中,您可以使用Jinja2表达式和过滤器来在返回列表中的另一个属性上应用过滤器。下面是一个简单的代码示例:
- name: 使用过滤器应用到另一个属性上
hosts: localhost
gather_facts: False
vars:
my_list:
- name: item1
value: 100
- name: item2
value: 200
- name: item3
value: 300
tasks:
- name: 应用过滤器
set_fact:
filtered_list: "{{ my_list | map(attribute='value') | list }}"
- name: 打印过滤后的属性列表
debug:
var: filtered_list
在这个示例中,我们有一个名为my_list
的变量,它包含一个列表,每个元素都有一个名为value
的属性。我们想要使用过滤器对value
属性进行过滤,并将过滤后的结果存储在filtered_list
变量中。
在任务应用过滤器
中,我们使用了Jinja2表达式和过滤器来将my_list
中的value
属性提取出来,并将结果存储在filtered_list
变量中。
在任务打印过滤后的属性列表
中,我们使用debug
模块来打印filtered_list
变量的值,以验证过滤器是否正常工作。
运行这个示例代码,您将看到输出中只包含my_list
中每个元素的value
属性的值。