eugene0707.merge_custom_vars

merge_custom_vars

Carga archivos de variables con precedencia personalizable y fusiona profundamente los hashes dentro. Por defecto, los archivos de variables se cargan desde la carpeta rpi_vars en los roles incluidos en el playbook, sobrescribiendo los de rpi_vars del directorio del playbook, y la mayor prioridad la tienen los rpi_vars del inventario. Puedes establecer tu propia lista de archivos/carpetas de variables a fusionar y su precedencia.

Requisitos

No se requieren requisitos especiales.

Variables del Rol

rpi_dir: nombre de la carpeta de variables a fusionar. Por defecto es rpi_vars.

rpi_files: archivos de variables o carpetas a fusionar. El orden de los elementos en el arreglo significa su precedencia. Por defecto:

  • "{{ rpi_role_dirs }}" # carpeta rpi_vars de los roles incluidos en el playbook. Los roles pueden estar dentro del playbook (local) o en otro lugar definido en la variable de configuración roles_path ("compartido" en mi caso).
  • "{{ rpi_playbook_dirs }}" # carpeta rpi_vars en el playbook
  • "{{ rpi_inventory_dirs }}" # carpeta rpi_vars en la carpeta de inventario. Si tus inventarios están ubicados en sus propias carpetas (mi caso).

Así que este rol hace dos cosas principales:

  1. Todos los hashes contenidos en rpi_files (yaml, json) se fusionan profundamente y se escriben en la carpeta tmp.
  2. El yml resultante con las variables fusionadas se carga mediante la tarea include_vars.

Dependencias

Ansible 2+

Ejemplo de Playbook

El concepto principal de este rol, además de fusionar hashes, es crear variables comunes que se puedan usar en roles cruzados, con mayor precisión a nivel de playbook e inventario. Incluye este rol en la primera posición del playbook, si lo usas.

Mientras no he conseguido obtener la contraseña del vault desde un módulo personalizado, las variables encriptadas se pueden importar al "cesto" de fusión a través de un plugin de búsqueda, por ejemplo:

---

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

Licencia

GPLv2

Información del Autor

Evgeniy Kondrashov https://github.com/eugene0707

Acerca del proyecto

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

Instalar
ansible-galaxy install eugene0707.merge_custom_vars
Licencia
Unknown
Descargas
120
Propietario