template facts example jinja2 ansible ansible-playbook

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) | ... }}"