Você precisa usar union
.
Fora do topo da minha cabeça:
all_settings="{{ foo|map(attribute='settings')|union(bar|map(attribute='settings')) }}"
Eu tenho uma tarefa que usa with_subelements
, mas é terrivelmente lenta para uma lista grande (especialmente que a maioria dos elementos tem duplicatas e eu não preciso executá-lo várias vezes para eles).
Então, estou procurando uma maneira de otimizá-lo de alguma forma. Desejo obter todos os elementos exclusivos dessa lista - digamos settings
no exemplo abaixo:
inventário:
my_list:
- { name: foo, settings: ['x', 'y', 'z'] }
- { name: bar, settings: ['x', 'y', 'q', 'w'] }
tarefas:
- name: get all settings
set_fact:
all_settings="{{ my_list|map(attribute='settings')|list }}"
- name: show results
debug:
var=all_settings
resultados:
"var": {
"all_settings": [
[
"x",
"y",
"z"
],
[
"x",
"y",
"q"
"w"
]
]
}
Eu fiquei preso neste ponto. Como posso combinar essa lista?
Estou procurando uma maneira de obter ['x', 'y', 'z', 'q', 'w']
Você precisa usar union
.
Fora do topo da minha cabeça:
all_settings="{{ foo|map(attribute='settings')|union(bar|map(attribute='settings')) }}"
Tags ansible