可靠.选择键:值对列表中的第n项,其中键等于x



从包含多个项目的列表entities中,确定哪个项目(索引号(的关键字is_default等于true。众所周知,列表中只有一项符合此标准。将生成的项分配给变量。

---  
- hosts: databases
gather_facts: true
vars:
entities:
- name: dude
is_default: false
id: 2104
gen: 12-C
- name: mate
is_default: true
id: 1724
gen: 13-A
- name: pal 
is_default: false
id: 1809
gen: 13-A                                                                                                                                                       

通过查看该列表,我们可以确定名为mate的列表中的第二项具有等于true的关键字is_default。下面演示了需要选择列表中的哪个项目:

---  
- hosts: databases
gather_facts: true
vars:
entities:
- name: dude
is_default: false
id: 2104
gen: 12-C
- name: mate
is_default: true
id: 1724
gen: 13-A
- name: pal 
is_default: false
id: 1809
gen: 13-A
selected_item: "{{ entities[1] }}"                                                                                                                                                        
tasks:
- name: show
debug:
msg: "{{ selected_item }}"

在这种情况下,selected_item变量存储列表的正确项。需要避免这种方法,因为键is_default等于true的项可能在列表中的任何索引处,并且重点是避免查看列表来确定需要哪个项。需要在显示的Ansible配置文件中解决。

尝试

selected_item: "{{ entities|selectattr('is_default')|list|first }}"

最新更新