eugene0707.merge_custom_vars

merge_custom_vars

Charger des fichiers de variables avec une priorité personnalisable et fusionner profondément les hachages qui s'y trouvent. Par défaut, les fichiers de variables sont chargés depuis le dossier rpi_vars dans les rôles inclus dans le playbook, en étant remplacés par rpi_vars du répertoire du playbook, et la priorité la plus élevée a les rpi_vars de l'inventaire. Vous pouvez définir votre propre liste de fichiers/dossiers de variables à fusionner et leur priorité.

Exigences

Aucune exigence spéciale.

Variables de Rôle

rpi_dir : nom du dossier de variables à fusionner. Par défaut, c'est rpi_vars.

rpi_files : fichiers ou dossiers de variables à fusionner. L'ordre des éléments dans le tableau détermine leur priorité. Par défaut :

  • "{{ rpi_role_dirs }}" # dossier rpi_vars des rôles inclus dans le playbook. Les rôles peuvent être placés à l'intérieur du playbook (local) ou ailleurs défini dans la variable de configuration roles_path ("shared" dans mon cas).
  • "{{ rpi_playbook_dirs }}" # dossier rpi_vars dans le playbook
  • "{{ rpi_inventory_dirs }}" # dossier rpi_vars dans le dossier d'inventaire. Si vos inventaires sont placés dans leurs propres dossiers (mon cas).

Ainsi, ce rôle effectue deux actions principales :

  1. Tous les hachages contenus dans rpi_files (yaml, json) sont fusionnés en profondeur et écrits dans un dossier temporaire.
  2. Le fichier yml résultant avec les variables fusionnées est chargé par la tâche include_vars.

Dépendances

Ansible 2+

Exemple de Playbook

Le concept principal de ce rôle, en plus de la fusion des hachages, est de créer des variables communes qui peuvent être utilisées à travers les rôles, avec une précision accrue au niveau du playbook et de l'inventaire. Incluez ce rôle en première position dans le playbook si vous l'utilisez.

Bien que je n'ai pas encore trouvé comment obtenir le mot de passe du coffre à partir d'un module personnalisé, les variables chiffrées peuvent être importées dans le "panier" de fusion via un plugin de recherche, par exemple :

---

secret:
  key: "{{ lookup('file', '{{ playbook_dir }}/files/vault.encrypted.key.txt') }}"

Licence

GPLv2

Informations sur l'Auteur

Evgeniy Kondrashov https://github.com/eugene0707

À propos du projet

Load vars files with customizable precedence and deep merge hashes within.

Installer
ansible-galaxy install eugene0707.merge_custom_vars
Licence
Unknown
Téléchargements
120
Propriétaire