У меня есть следующий сложный словарь (это всего лишь образец). И я пытаюсь получить список всех идентификаторов, принадлежащих server1. Имя server1 в смешанном регистре.
Я пробовал фильтры jinja2, такие как match
, search
, equalto
, но ни один из них не дает ожидаемого результата. Также пробовал запрос JSON, но все еще не знал, как использовать нижний или верхний регистр для сравнения с работой.
---
- name: TEST
hosts: localhost
gather_facts: no
vars:
datacenters: {
cabinets: {
servers: [
{
name: Server1,
id: 1
},
{
name: SERVER1,
id: 2
},
{
name: Server2,
id: 3
},
{
name: server1,
id: 4
},
]
}
}
tasks:
- name: get ids for Server 1
set_fact:
ids: "{{ datacenters.cabinets.servers
| selectattr('name','match','Server1')
| map(attribute='id')
| list }}"
- debug:
var: ids
- debug: msg="{{ datacenters | json_query(\"cabinets.servers[?name == 'Server1'].id\") }}"