Dependències de rols d'Ansible

Dependencies De Rols D Ansible



Ansible és una de les eines d'automatització més influents i reconegudes de l'edat moderna. Una de les característiques significatives d'Ansible que destaca són els rols.

Els rols Ansible fan referència a agrupar definicions d'automatització per facilitar-ne la reutilització i el manteniment. Tanmateix, hi ha casos en què els rols específics depenen d'altres funcions per funcionar correctament.

En aquest tutorial, explorarem la funcionalitat de les dependències de rols d'Ansible, què són, per què són essencials i com definir-les i utilitzar-les.







Dependències de rols d'Ansible

Igual que altres eines i utilitats que depenen de biblioteques o mòduls, els rols d'Ansible poden dependre de diferents rols per executar les instruccions especificades.



Les dependències de rol d'Ansible permeten que un rol utilitzi la funcionalitat d'un altre, ja sigui mitjançant la inclusió de les seves tasques o gestors.



Definició de les dependències de rol

A Ansible, podem definir les dependències al fitxer meta/main.yml del rol sota la paraula clau 'dependències'.





Exemple 1: dependència de rols d'Ansible

Demostrem com podem crear i utilitzar la dependència del rol d'Ansible.

Suposem que tenim un rol anomenat 'servidor web' que depèn d'un altre rol anomenat 'tallafoc' per garantir que els ports que necessitem estiguin oberts.



El meta/main.yml per al rol de servidor web té un aspecte similar al que es mostra a continuació:

---
dependències:
- rol: tallafoc

Com podeu endevinar, això indica a Ansible que la funció de servidor web requereix que la funció de tallafoc s'executi correctament.

Exemple 2: Dependència parametritzada

També podem passar els paràmetres als rols dels quals depenem. Diguem que el tallafoc requereix una llista de ports per obrir-se. Podem passar els paràmetres de la següent manera:

---
dependències:
- rol: tallafoc
del qual:
ports_oberts:
- 80
- 443

En aquest cas, definim una variable que passa el port 80 i el port 443 com a paràmetres de la funció del tallafoc.

Com utilitzar els rols de dependència d'Ansible

Abans que un altre rol pugui dependre d'un altre, primer ha d'existir el dependent. En el cas de les funcions de servidor web i de tallafoc, primer ha d'existir la funció de tallafoc.

Podeu utilitzar l'ordre ansible-galaxy per crear els rols de la següent manera:

$ ansible-galaxy init firewall
$ ansible-galaxy init servidor web

Un cop creat el rol, podem definir les tasques que volem realitzar en el rol principal.

Per exemple, a firewall/tasks/main.yml, podem definir les tasques de la següent manera:

---
- nom: ports oberts
firewalld:
port: '{{ element }}'
permanent: cert
estat: habilitat
with_items: '{{ open_ports }}'

El següent pas és especificar els rols dependents al fitxer meta/main.yml tal com es mostra a l'exemple anterior.

Finalment, podeu utilitzar el paper principal al vostre llibre de jocs de la següent manera:

---
- amfitrions: servidors web
rols:
- servidor web

Un cop executem l'exemple del llibre de jugades anterior, Ansible executa les tasques des del rol de tallafoc i després passa a les tasques del rol de servidor web.

Ús de les dependències de rol d'Ansible Galaxy

L'Ansible Galaxy és un dipòsit per a rols d'Ansible si no el coneixeu. Si teniu un rol disponible a l'Ansible Galaxy que voleu utilitzar, podeu especificar-lo mitjançant l'espai de noms de la manera següent:

---
dependències:
- geerlingguy.firewall

Tanmateix, assegureu-vos d'instal·lar-lo amb l'ordre ansible-galaxy:

$ ansible-galaxy instal·lació geerlingguy.firewall

Conclusió

Hem après la funcionalitat de les dependències de rol d'Ansible. Vam explicar com crear-los i utilitzar-los, com passar els paràmetres i molt més. Utilitzant les habilitats que hem après aquí, podeu introduir una manera robusta i modular de reutilitzar el codi, garantint la coherència i mantenint la modularitat a les tasques d'Ansible.