Pas 1: Creació d'un fitxer YAML (.yml).
Pas 2: Entendre els llibres de jugades: tasques i gestors
Pas 3: Execució de llibres de jugades
Els llibres de jugades a Ansible són el que fa que Ansible sigui tan útil. Els llibres de jugades permeten executar tasques rutinàries amb diversos mòduls. Quan hem d'utilitzar els llibres de joc?
Fem una ullada a una tasca de manteniment rutinària: actualitzar els vostres servidors. No hauríem d'utilitzar un llibre de jugades per a això, atès que només és una ordre: apt-get update. Només podríem utilitzar una sola ordre per actualitzar el programari a tots els nostres servidors. Tanmateix, per desplegar alguna cosa com un servidor web o de bases de dades, cal més feina: no només una ordre única. Els llibres de joc són perfectes per a aquest cas. Us permeten utilitzar diversos mòduls, que són ordres que es poden executar en un servidor. Per exemple, hi ha mòduls per copiar fitxers i executar ordres d'intèrpret d'ordres mitjançant SSH.
Llavors, com fem servir els llibres de joc? Comencem!
Pas 1: Creació d'un .ymlfitxer YAML ( ).
Els llibres de jugades d'Ansible s'escriuen com a .ymlfitxers; Ansible no pot interpretar altres formats. Un exemple de llibre de jugades d'Ansible és el següent:
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
(Extret de la documentació d'Ansible)
Pas 2: Entendre els llibres de jugades: tasques i gestors
Com podeu veure, hi ha diverses seccions en aquest llibre de jocs. En primer lloc, veureu la hosts:línia. Això determina en quins amfitrions s'ha d'executar el llibre de jugades. També podeu veure que hem definit un parell de variables a les quals es pot accedir i utilitzar al llarg del llibre de jugades. A continuació, veureu una sèrie de tasques. Aquestes tasques es podrien anomenar com "Instal·lar Apache", per exemple. La segona tasca de l'exemple escriu a la configuració d'Apache. Aleshores veureu el següent:
notify:
- restart apache
Això indica a una tasca que executi un controlador determinat. En aquest cas, es refereix al gestor restart apache, que es pot trobar a la part inferior del llibre de jugades:
handlers:
- name: restart apache
service: name=httpd state=restarted
Els controladors són convenients perquè, prenent l'exemple, és possible que vulgueu reiniciar Apache diverses vegades. En aquest cas, no haureu de repetir la creació d'una tasca cada vegada que necessiteu reiniciar Apache, sinó que podeu fer referència al mateix controlador cada vegada.
Pas 3: Execució de llibres de jugades
Diguem que voleu desplegar un servidor Apache. Bé, com podeu veure, acabem de crear un llibre de jocs per a això. L'execució de llibres de jugades es pot fer mitjançant l' ansible-playbookordre. Per exemple, si haguéssim d'executar aquest llibre de jugades a tots els servidors de la webserverscategoria (haureu de tenir aquesta categoria al vostre /etc/ansible/hostsfitxer), executaríeu l'ordre següent atès que el nom del fitxer del vostre llibre de jocs és apache.yml:
ansible-playbook -i webservers apache.yml
Felicitats! Ara heu executat un llibre de jugades a tots els servidors de la vostra webserverscategoria. Ara només haureu d'esperar que finalitzi el desplegament i veureu que Apache s'ha instal·lat i configurat correctament en aquests servidors.