Com crear i descarregar rols a Ansible Galaxy i utilitzar-los - Part 9
A la part 9 del fitxer de llibre de reproducció únic.
Tanmateix, escriure llibres de jugades per gestionar el mateix servei en diferents entorns pot ser bastant complicat i això sol comportar una redundància de codi. A més, més complexitat pot augmentar la dificultat per gestionar tots els dispositius.
En arriben els rols. A Ansible, els rols s'utilitzen per descompondre els llibres de jugades en fitxers reutilitzables que es poden utilitzar en altres casos en què sorgeix la necessitat de realitzar una tasca similar. Això va eliminar la necessitat de reescriure els llibres de jugades una i altra vegada i estalvia una gran quantitat de temps i energia.
Els rols són simplement funcionalitats dels llibres de jugades. Un paper inclou pràcticament el que constituiria un llibre de jocs: tasques, fitxers, mòduls, variables i plantilles. A més, tingueu en compte que cada funció es limita a una tasca concreta o a la sortida desitjada.
Creació d'un rol Ansible
Per crear un rol a Ansible, només cal que utilitzeu la sintaxi.
# ansible-galaxy init role_name
Es crearan diversos directoris i fitxers al vostre directori de treball actual. En aquest cas, he decidit crear un rol al directori /etc/ansible/roles.
Creem un rol anomenat apache.
# ansible-galaxy init apache
Utilitzeu l'ordre tree per fer una ullada a l'estructura de directoris de la funció.
# tree apache
Com podeu veure, s'han creat diversos directoris, però no tots s'utilitzaran al llibre de jugades.
Ara, per utilitzar el vostre rol acabat de crear en un llibre de jocs, definiu una tasca al fitxer main.yml que hi ha al directori de tasques del vostre nou rol.
/apache/tasks/main.yml --- - hosts: database_servers tasks: - name: Install Apache2 on Ubuntu webserver apt: name: apache2 state: installed
Després, creeu un fitxer de llibre de jocs i crideu el rol tal com es mostra.
--- - hosts: webservers roles: - apache
Instal·lació d'un rol des d'Ansible Galaxy
Els rols tenen un paper crucial a l'hora de compartir codi amb altres usuaris de la comunitat Ansible mitjançant la plataforma Ansible Galaxy. A Ansible Galaxy, obteniu milers de rols realitzant diferents tasques com ara la instal·lació de servidors web i bases de dades, eines de monitorització, etc.
Ansible Galaxy és una base de dades o un dipòsit de rols Ansible que podeu aprofitar als vostres llibres de jocs i ajudar a racionalitzar les vostres tasques.
Per cercar un paper a Ansible Galaxy, només cal que executeu l'ordre.
# ansible-galaxy search <role>
Per exemple, per cercar un rol anomenat mysql run.
# ansible-galaxy search mysql
Com podeu veure, hi ha centenars de rols que coincideixen amb la paraula clau de cerca mysql. Tanmateix, no tots els rols faran el que voleu, per la qual cosa es recomana que llegiu les instruccions amb atenció.
Per recopilar més informació sobre un rol, només cal que executeu l'ordre Ansible:
# ansible-galaxy info 5KYDEV0P5.skydevops-mysql
Al nostre exemple, instal·larem el rol 5KYDEV0P5.skydevops-mysql.
# ansible-galaxy install 5KYDEV0P5.skydevops-mysql
El rol es baixa i s'extreu al directori de rols predeterminat situat a /etc/ansible/roles.
El paper es pot anomenar després en un llibre de jocs, per exemple:
--- - name: Install MySQL server hosts: webservers roles: • 5KYDEV0P5.skydevops-mysql
Ara podeu executar amb seguretat el llibre de jugades Ansible tal com es mostra.
# ansible-playbook install_mysql.yml
A més, podeu visitar Ansible Galaxy mitjançant el vostre navegador web i cercar manualment rols per realitzar diverses tasques tal com s'indica al tauler.
Per exemple, per cercar una funció de supervisió com elasticsearch, feu clic a l'opció Supervisió i cerqueu la funció tal com es mostra.
Ansible Galaxy facilita als usuaris la instal·lació de les millors funcions mitjançant una llista dels rols més populars i descarregats. Per obtenir més informació sobre un rol específic, només cal que feu-hi clic.
En un llibre de jugades, també podeu especificar més d'un rol, per exemple.
--- - name: Install MySQL server hosts: webservers roles: • 5KYDEV0P5.skydevops-mysql • Aaronpederson.mariadb
Per llistar els rols instal·lats, només cal que executeu.
# ansible-galaxy list
Els rols fan que sigui bastant fàcil reutilitzar i compartir llibres de jugades d'Ansible. D'aquesta manera, estalvien molt de temps a un usuari intentant escriure molt codi redundant i passa massa temps que s'hauria utilitzat en altres tasques d'administració del sistema. I això és tot per a aquesta guia.