可以使用 ansible 的 set_fact 模块对符合条件的列表项进行替换。 示例代码:
- name: Replace list items when meeting criteria
hosts: servers
gather_facts: no
vars:
my_list:
- name: foo
value: 10
- name: bar
value: 20
tasks:
- name: Replace list items
set_fact:
my_list: "{{ my_list | map('combine', { item.name: item_new }) }}"
loop: "{{ my_list }}"
when: item.name == 'foo'
vars:
item_new:
name: foo
value: 50
上述示例中,如果 my_list 中的项名称为 'foo',那么它的值将会被替换为 { name: 'foo', value: 50 }。
上一篇:Ansible列表无序。