est-il possible d'ajouter une liste de variables à une liste statique en ansible?
Je peux définir la liste entière comme une variable:
my_list:
- 1
- 2
- 3
puis l'utiliser dans un playbook comme
something: {{my_list}}
Mais je n'arrive pas à trouver comment faire cela (pseudo code):
list_to_append:
- 3
- 4
puis dans le playbook:
something:
- 1
- 2
- {{append: list_to_append}}
Si cela est en fait impossible, que suggéreriez-vous pour mon cas d'utilisation?
J'ai une liste d'éléments dans un paramètre, mais certains d'entre eux sont optional
et devraient être modifiables à l'aide de variables.
En d'autres termes: j'ai default values
+ optional values
pouvant ou non être ajouté via des variables.
Le optional values
ne sont pas connus à l'avance, je pourrais en ajouter 1, 2 ou 100, donc ils ne sont pas statiques.
J'ai essentiellement une liste statique par défaut ++ une liste de variables configurables à ajouter.
edit: J'ai trouvé ça mais c'est seulement pour with_items et j'en ai besoin dans un paramètre normal:
with_flattened:
- "{{list1}}"
- "{{list2}}"
Si vous voulez vraiment ajouter du contenu, vous devrez utiliser le set_fact
module. Mais si vous souhaitez simplement utiliser les listes fusionnées, c'est aussi simple que cela:
{{ list1 + list2 }}
Avec set_fact
cela ressemblerait à ceci:
- set_fact:
list_merged: "{{ list1 + list2 }}"
REMARQUE: Si vous devez effectuer des opérations supplémentaires sur les listes concaténées, assurez-vous de les regrouper comme suit:
- set_fact:
list_merged: "{{ (list1 + list2) | ... }}"
Les éléments suivants ont fonctionné pour moi avec 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}] }}"