Ricerca nel sito web

Comprendere i componenti principali di Ansible - Parte 1


L'esame Red Hat Certified Specialist in Ansible Automation (EX407) è un nuovo programma di certificazione di Red Hat che mette alla prova le tue capacità di utilizzare Ansible per automatizzare la configurazione di sistemi e applicazioni.

La serie sarà intitolata "The Red Hat Certified Specialist in Ansible Automation exam (EX407)" e coprirà i seguenti obiettivi dell'esame basati su Red Hat Enterprise Linux 7.5 e Ansible 2.7, di cui parleremo in questa serie Ansible:

Per visualizzare le tariffe e iscriverti a un esame nel tuo Paese, controlla la pagina degli esami di Ansible Automation.

In questa Parte 1 della serie Ansible, discuteremo una panoramica di base dei componenti principali di Ansible.

Comprendere i componenti principali di Ansible

Ansible è una piattaforma di automazione gratuita e open source di RedHat che ti consente di gestire e controllare più server da una posizione centrale. È particolarmente ideale quando è necessario eseguire attività multiple e ripetitive. Quindi, invece di accedere a ciascuno di questi nodi remoti ed eseguire le tue attività, puoi farlo comodamente da una posizione centrale e gestire comodamente i tuoi server.

Ciò è utile quando si desidera mantenere la coerenza nella distribuzione delle applicazioni, ridurre l'errore umano e automatizzare attività ripetitive e banali.

Naturalmente esistono altre alternative ad Ansible come Puppet, Chef e Salt. Tuttavia, Ansible è per lo più preferito perché è facile da usare e semplice da imparare.

Perché è semplice da imparare potresti chiedere? Questo perché Ansible utilizza YAML (Yet Another Markup Language) nei suoi lavori di configurazione e automazione che sono leggibili dall'uomo e abbastanza facili da seguire. YAML utilizza il protocollo SSH per comunicare con server remoti, a differenza di altre piattaforme di automazione che richiedono l'installazione di un agente sui nodi remoti per comunicare con loro.

Prima di iniziare con Ansible, è importante acquisire familiarità con alcune terminologie di base in modo da non perdersi o confondersi man mano che si procede.

Inventario

Un inventario è un file di testo che contiene un elenco di server o nodi che stai gestendo e configurando. Di solito, i server sono elencati in base ai nomi host o agli indirizzi IP.

Un file inventario può contenere sistemi remoti definiti dai relativi indirizzi IP come mostrato:

10.200.50.50
10.200.50.51
10.200.50.52

In alternativa, possono essere elencati in base ai gruppi. Nell'esempio seguente, abbiamo server posizionati in 2 gruppi: server web e database. In questo modo possono essere referenziati in base ai nomi dei gruppi e non ai loro indirizzi IP. Ciò semplifica ulteriormente i processi operativi.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Puoi avere più gruppi con più server se ti trovi in un ambiente di produzione di grandi dimensioni.

Playbook

Un playbook è un insieme di script di gestione della configurazione che definiscono come eseguire le attività sugli host remoti o su un gruppo di macchine host. Gli script o le istruzioni sono scritti in formato YAML.

Ad esempio, puoi avere un file playbook per installare il server web Apache su CentOS 7 e chiamarlo httpd.yml.

Per creare il playbook esegui il comando.

touch playbook_name.yml

Ad esempio, per creare un playbook chiamato httpd, esegui il comando.

touch httpd.yml

Un file YAML inizia con 3 trattini come mostrato. All'interno del file, aggiungi le seguenti istruzioni.

---
- 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

Il playbook riportato sopra installa il server web Apache su sistemi remoti definiti come server web nel file di inventario. Dopo l'installazione del server web, Ansible controlla successivamente se il server web Apache è avviato e in esecuzione.

Moduli

I moduli sono unità discrete di codice utilizzate nei playbook per eseguire comandi su host o server remoti. Ogni modulo è seguito da un argomento.

Il formato di base di un modulo è chiave: valore.

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

Nello snippet di codice YAML sopra, -name e yum sono moduli.

Gioca

Un play ansible è uno script o un'istruzione che definisce l'attività da eseguire su un server. Una raccolta di opere teatrali costituisce un playbook. In altre parole, un playbook è una raccolta di più riproduzioni, ognuna delle quali stabilisce chiaramente il compito da svolgere su un server. Le riproduzioni esistono in formato YAML.

Variabili

Se hai esperienza nella programmazione, molto probabilmente hai utilizzato le variabili. Fondamentalmente, una variabile rappresenta un valore. Una variabile può includere lettere, numeri e trattini bassi ma DEVE sempre iniziare con lettere.

Le variabili vengono utilizzate quando le istruzioni variano da un sistema all'altro. Ciò è particolarmente vero durante la configurazione di vari servizi e funzionalità.

Esistono 3 tipi principali di variabili:

  • Variabili del playbook
  • Variabili di inventario
  • Variabili speciali

In Ansible, le variabili vengono prima definite utilizzando vars k, quindi seguite dal nome della variabile e dal valore.

La sintassi è quella mostrata:

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

Considera il codice seguente.

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

Nell'esempio sopra, la variabile qui è web_directory e indica ad ansible di creare una directory nel percorso /var/www/html/.

Fatti

I fatti sono proprietà di sistema raccolte da Ansible quando esegue un playbook su un sistema host. Le proprietà includono nome host, famiglia di sistema operativo, tipo di CPU e core della CPU, per citarne alcuni.

Per avere un'idea del numero di fatti disponibili per l'uso, eseguire il comando.

ansible localhost -m setup

Come puoi vedere, per impostazione predefinita è stato visualizzato un numero enorme di fatti. È possibile restringere ulteriormente i risultati utilizzando il parametro filtro come mostrato.

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

File di configurazione

In Ansible, un file di configurazione è un file che contiene diverse impostazioni di parametri che determinano la modalità di esecuzione di Ansible. Il file di configurazione predefinito è il file ansible.cfg situato nella directory /etc/ansible/.

È possibile visualizzare il file di configurazione eseguendo:

cat /etc/ansible/ansible.cfg

Come puoi osservare, sono inclusi diversi parametri come percorsi di file inventario e libreria, utente sudo, filtri plugin, moduli, ecc. Questi parametri possono essere regolati semplicemente commentandoli out e modificando i valori in esso contenuti.

Inoltre, puoi avere più file di configurazione che funzionano con Ansible oltre al file di configurazione predefinito.

Riepilogo

Dopo aver esaminato i componenti principali di Ansible, ci auguriamo che tu sia in grado di tenerli a portata di mano e di selezionarli mentre andiamo avanti. Unisciti a noi sul tuo prossimo argomento.