(Liés à des rappels ou des points d' ancrage, et à une série de tâches réutilisables, dans des rôles Ansible ):
Y at-il un meilleur moyen d’ajouter à une liste ou d’ajouter une clé à un dictionnaire dans Ansible que (ab) en utilisant une expression de modèle jina2?
Je sais que tu peux faire quelque chose comme:
- name: this is a hack
shell: echo "{% originalvar.append('x') %}New value of originalvar is {{originalvar}}"
mais n'y a-t-il vraiment aucune sorte de méta-tâche ou d'aide pour le faire?
Il se sent fragile, semble ne pas avoir de papiers d'identité et repose sur de nombreuses hypothèses sur le fonctionnement des variables dans Ansible.
Mon cas d'utilisation est constitué de plusieurs rôles (extensions de serveur de base de données) qui doivent chacun fournir une configuration à un rôle de base (le serveur de base de données). Ce n'est pas aussi simple que d'ajouter une ligne au fichier de configuration du serveur de base de données; chaque changement s'applique à la même ligne , par exemple les extensions bdr
et pg_stat_statements
doit apparaître sur une ligne cible:
shared_preload_libaries = 'bdr, pg_stat_statements'
Pour ce faire, Ansible peut-il simplement traiter le fichier de configuration plusieurs fois (une fois par extension) avec une expression rationnelle qui extrait la valeur actuelle, la analyse, puis la réécrit? Si oui, comment rend-on cet idempotent après plusieurs exécutions?
Que faire si la configuration est plus difficile à analyser que cela et si ce n'est pas aussi simple que d'ajouter une autre valeur séparée par des virgules? Pensez aux fichiers de configuration XML.