Ansible Include_Vars

Ansible Include Vars



A l'ecosistema Ansible, tenim accés al mòdul include_vars que ens permet carregar les variables d'un fitxer, directori o fitxers que coincideixen amb un patró global dins d'un llibre de jugades determinat.

En aquest tutorial, aprendrem a utilitzar aquest mòdul que ens permet organitzar les nostres configuracions d'Ansible en unitats més lògiques i netes que són més fàcils de reutilitzar i mantenir.

Variables Ansibles

Per defecte, definim principalment les variables dins del llibre de jugades. Tanmateix, quan els llibres de jugades es tornen més complexos, és possible que hàgiu de mantenir-hi un cert nivell d'organització i manteniment. Aquí és on el mòdul include_vars és d'ajuda.







Mitjançant aquest mòdul, podem separar les variables en fitxers específics que podem importar i reutilitzar segons sigui necessari. Això és especialment útil quan es treballa en diferents entorns com ara producció, muntatge, etc. on els requisits poden diferir.



Avantatges del mòdul Include_Vars

Els següents són alguns dels avantatges pronunciats de separar les variables en fitxers específics:



Separació de lògica i dades - El mòdul include_vars ens permet mantenir els llibres de jugades concisos separant les tasques de les dades de configuració.





Configuracions específiques de l'entorn: La separació de les variables ens permet utilitzar diferents fitxers de variables per a diferents entorns o hosts.

Duplicació reduïda - Ens permet evitar definir les mateixes variables en diversos llocs.



Sintaxi Ansible Include_Vars

A continuació es mostra la sintaxi bàsica del mòdul include_vars dins d'un llibre de jugades d'Ansible:

- nom: inclou variables d'un fitxer
include_vars:
fitxer: ruta_fitxer

Exemple d'ús:

Explorem alguns exemples bàsics de configuració i treball amb el mòdul include_vars en un llibre de jugades.

Exemple 1: ús bàsic

Suposem que tenim un disseny de directori tal com es mostra a continuació:

.
├── playbook.yml
└── de qui
└── db_config.yml Al directori arrel, tenim el llibre de jugades real que volem executar. També tenim el fitxer 'db_config.yml' sota el directori vars que fem servir per definir les variables necessàries per a la configuració de la base de dades.

A continuació, al fitxer var/db_config.yml, tenim les variables següents:

db_user: root
db_contrasenya: mysql

Per utilitzar les variables anteriors en un llibre de jugades, podem utilitzar el mòdul include_vars tal com es mostra a l'exemple del llibre de jugades següent:

---
- amfitrions: tots
tasques:
- nom: inclou la configuració de la base de dades
include_vars:
fitxer: vars/db_config.yml
- nom: imprimeix l'usuari de la base de dades
depurar:
msg: 'L'usuari de la base de dades és {{ db_user }}'

Exemple 2: incloure tots els fitxers en un directori

També podem incloure tots els fitxers dins d'un directori determinat, tal com es mostra a l'exemple següent:

---
- amfitrions: tots
tasques:
- nom: inclou tota la configuració
include_vars:
tu: vars

Això hauria d'incloure totes les variables que es defineixen a tots els fitxers del directori vars.

Exemple 3: càrrega de variables condicionalment

També podem utilitzar diversos paràmetres per incloure les variables que coincideixen amb una condició específica, tal com es mostra a continuació:

---
- amfitrions: tots
del qual:
env: posada en escena

tasques:
- nom: inclou la configuració específica de l'entorn
include_vars:
fitxer: 'vars/{{ env }}.yml'

En aquest cas, carreguem el 'staging.yml' tal com es defineix al manual anterior.

Conclusió

Heu conegut el mòdul include_vars d'Ansible que ens permet carregar les variables que es defineixen en un fitxer o directori específic. Podeu consultar la documentació per a un control més granular.