facts - ansible jinja2 template example
Anexa la variable de lista a otra lista en Ansible (2)
¿Es posible agregar una lista de variables a una lista estática en ansible?
Puedo definir la lista completa como una variable:
my_list:
- 1
- 2
- 3
y luego usarlo en un libro de jugadas como
something: {{my_list}}
Pero parece que no puedo encontrar cómo hacer esto (pseudo código):
list_to_append:
- 3
- 4
y luego en el libro de jugadas:
something:
- 1
- 2
- {{append: list_to_append}}
Si eso es de hecho imposible, ¿qué sugeriría usted para mi caso de uso?
Tengo una lista de elementos en un parámetro, pero algunos de ellos son optional
y deberían ser modificables utilizando variables.
En otras palabras: tengo default values
+ default values
optional values
que podrían o no agregarse a través de variables.
Los optional values
no se conocen de antemano, podría agregar 1, 2 o 100 de ellos, por lo que no son estáticos.
Básicamente tengo una lista estática predeterminada ++ una lista de variables configurables para anexar.
edición: encontré esto pero es solo para with_items y lo necesito en un parámetro normal:
with_flattened:
- "{{list1}}"
- "{{list2}}"
Lo siguiente me funcionó con Ansible 2.1.2.0:
- name: Define list of mappings
set_facts:
something:
- name: bla
mode: 1
- name: Append list with additional mapping
set_facts:
something: "{{ something + [{''name'': ''blabla'', ''mode'': 1}] }}"
Si realmente desea adjuntar al contenido, deberá utilizar el módulo set_fact
. Pero si solo quieres usar las listas combinadas es tan fácil como esto:
{{ list1 + list2 }}
Con set_fact
se vería así:
- set_fact:
list_merged: "{{ list1 + list2 }}"
NOTA: Si necesita realizar operaciones adicionales en las listas concatenadas, asegúrese de agruparlas así:
- set_fact:
list_merged: "{{ (list1 + list2) | ... }}"