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.