Entendre els components bàsics d'Ansible - Part 1


L'examen de Red Hat Certified Specialist in Ansible Automation (EX407) és un nou programa de certificació de Red Hat que posa a prova les vostres habilitats per utilitzar Ansible per automatitzar la configuració de sistemes i aplicacions.

La sèrie s'anomenarà L'examen de l'especialista certificat de Red Hat en l'automatització d'Ansible (EX407) i cobreix els següents objectius de l'examen basats en Red Hat Enterprise Linux 7.5 i Ansible 2.7, que tractarem en aquesta sèrie d'Ansible:

Per veure les tarifes i registrar-se a un examen al vostre país, consulteu la pàgina d'examen d'Ansible Automation.

En aquesta part 1 de la sèrie Ansible, parlarem d'alguna visió general bàsica dels components bàsics d'Ansible.

Ansible és una plataforma d'automatització gratuïta i de codi obert de RedHat que us permet gestionar i controlar diversos servidors des d'una ubicació central. És especialment ideal quan tens tasques múltiples i repetitives que cal realitzar. Per tant, en lloc d'iniciar sessió a cadascun d'aquests nodes remots i dur a terme les vostres tasques, podeu fer-ho còmodament des d'una ubicació central i gestionar còmodament els vostres servidors.

Això és beneficiós quan voleu mantenir la coherència en el desplegament d'aplicacions, reduir l'error humà i automatitzar tasques repetitives i una mica mundanes.

Per descomptat, hi ha altres alternatives a Ansible com Puppet, Chef i Salt. Tanmateix, Ansible es prefereix sobretot perquè és fàcil d'utilitzar i d'aprendre.

Per què és fàcil d'aprendre us podeu preguntar? Això es deu al fet que Ansible utilitza YAML (Yet Another Markup Language) en els seus treballs de configuració i automatització, que són llegibles pels humans i bastant fàcils de seguir. YAML utilitza el protocol SSH per comunicar-se amb servidors remots, a diferència d'altres plataformes d'automatització que requereixen instal·lar un agent en nodes remots per comunicar-se amb ells.

Abans de començar amb Ansible, és important que us familiaritzeu amb algunes terminologies bàsiques perquè no us perdeu ni us confongueu a mesura que avancem.

Un inventari és un fitxer de text que conté una llista de servidors o nodes que esteu gestionant i configurant. Normalment, els servidors s'enumeren en funció dels seus noms d'amfitrió o adreces IP.

Un fitxer d'inventari pot contenir sistemes remots definits per les seves adreces IP, tal com es mostra:

10.200.50.50
10.200.50.51
10.200.50.52

Alternativament, es poden classificar per grups. A l'exemple següent, tenim servidors situats en 2 grups: servidors web i bases de dades. D'aquesta manera es poden fer referència segons els noms del grup i no les adreces IP. Això simplifica encara més els processos operatius.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Podeu tenir diversos grups amb diversos servidors si esteu en un entorn de producció gran.

Un llibre de jocs és un conjunt d'scripts de gestió de configuració que defineixen com s'han d'executar les tasques en amfitrions remots o en un grup de màquines amfitriones. Els scripts o instruccions estan escrits en format YAML.

Per exemple, podeu tenir un fitxer de llibre de jocs per instal·lar el servidor web Apache a CentOS 7 i anomenar-lo httpd.yml.

Per crear el llibre de jugades, executeu l'ordre.

$ touch playbook_name.yml

Per exemple, per crear un llibre de jugades anomenat httpd, executeu l'ordre.

$ touch httpd.yml

Un fitxer YAML comença amb 3 guions com es mostra. Dins del fitxer, afegiu les instruccions següents.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

El llibre de jocs anterior instal·la el servidor web Apache en sistemes remots definits com a servidors web al fitxer d'inventari. Després de la instal·lació del servidor web, Ansible comprova si el servidor web Apache està iniciat i en funcionament.

Els mòduls són unitats de codi discretes que s'utilitzen als llibres de jugades per executar ordres en hosts o servidors remots. Cada mòdul va seguit d'un argument.

El format bàsic d'un mòdul és clau: valor.

- name: Install apache packages 
    yum:   name=httpd  state=present

Al fragment de codi YAML anterior, -name i yum són mòduls.

Un joc ansible és un guió o una instrucció que defineix la tasca que s'ha de dur a terme en un servidor. Una col·lecció d'obres constitueix un llibre de jugades. En altres paraules, un llibre de jugades és una col·lecció de múltiples jugades, cadascuna de les quals estipula clarament la tasca que s'ha de dur a terme en un servidor. Les reproduccions existeixen en format YAML.

Si teniu formació en programació, és probable que hàgiu utilitzat variables. Bàsicament, una variable representa un valor. Una variable pot incloure lletres, números i guions baixos, però HA de començar sempre per lletres.

Les variables s'utilitzen quan les instruccions varien d'un sistema a un altre. Això és especialment cert durant la configuració o diversos serveis i funcions.

Hi ha 3 tipus principals de variables:

  • Variables del llibre de jocs
  • Variables d'inventari
  • Variables especials

A Ansible, les variables es defineixen primer utilitzant els vars k i després el nom de la variable i el valor.

La sintaxi és la que es mostra:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

Considereu el codi següent.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

A l'exemple anterior, la variable aquí és web_directory i indica a l'ansible que creï un directori a la ruta /var/www/html/.

Els fets són propietats del sistema recopilades per Ansible quan executa un llibre de jugades en un sistema amfitrió. Les propietats inclouen el nom d'amfitrió, la família del sistema operatiu, el tipus de CPU i els nuclis de CPU per esmentar-ne alguns.

Per tenir una visió del nombre de fets disponibles per utilitzar, emet l'ordre.

$ ansible localhost -m setup

Com podeu veure, s'han mostrat per defecte un gran nombre de fets. Podeu reduir encara més els resultats utilitzant el paràmetre de filtre tal com es mostra.

$ ansible localhost -m setup -a "filter=*ipv4"

A Ansible, un fitxer de configuració és un fitxer que conté diferents paràmetres que determinen com s'executa Ansible. El fitxer de configuració per defecte és el fitxer ansible.cfg situat al directori /etc/ansible/.

Podeu veure el fitxer de configuració executant:

$ cat /etc/ansible/ansible.cfg

Com podeu observar, s'inclouen diversos paràmetres com ara camins de fitxers d'inventari i biblioteca, usuari sudo, filtres de connectors, mòduls, etc. Aquests paràmetres es poden ajustar simplement comentant-los i modificant-ne els valors.

A més, podeu tenir diversos fitxers de configuració que funcionin amb Ansible a part del vostre fitxer de configuració predeterminat.

Després d'haver mirat els components bàsics d'Ansible, esperem que estigueu en condicions de tenir-los al vostre abast i escollir-los a mesura que avancem. Uneix-te a nosaltres en el teu proper tema.