Dal caos all’automazione di infrastrutture IT con Ansible

Dal caos all’automazione di infrastrutture IT con Ansible

 

 

Cos’è Ansible

 

Ansible è un software che permette di automatizzare le procedure di configurazione e la gestione su sistemi unix e derivati.

Potente, semplice e dal facile apprendimento, Ansible sfrutta due tipi di server:

  • nodi
  • macchine di controllo

La macchina controllore è quella che organizza il tutto eseguendo determinati comandi sui nodi e a cui si connette una chiave di accesso SSH.

Ansible utilizza OpenSSH e WinRM e non necessita di agenti che ammettano il rischio di exploit o di problematiche di aggiornamento, inoltre non richiede agenti da installare sui nodi ma è richiesto solo il server OpenSSH.

Le sue specifiche di configurazione sono scritte in documenti YAML che vengono chiamati Playbook; YAML è un linguaggio molto elementare basato principalmente sull’indentazione

Le specifiche di configurazione operano attraverso dei task, per esempio: un task potrebbe essere quello di aggiornare il file di configurazione di un database server, in questo caso, un gestore di eventi chiuderebbe il database al termine dell’esecuzione del task stesso.

Ansible è semplice: il linguaggio nel quale configuriamo i playbook è molto intuitivo e i task sono eseguibili in sequenza

Con questo software è possibile eseguire un deploy in modo molto veloce, in ogni momento e consente la gestione dell’intero ciclo di vita delle applicazioni.

Un altro aspetto positivo di Ansible è che si tratta di un pacchetto completo: contiene strumenti per il deployment delle applicazioni ai nodi e il gestore delle configurazioni dei server oltre che per il provisioning.

Inoltre risulta essere molto affidabile: se scritto con la dovuta accuratezza, un Playbook può essere in grado di gestire anche situazioni inaspettate che potrebbero verificarsi sui nodi.

 

 

Concetti Chiave

 

Per capire il funzionamento di questo software è opportuno descrivere quelli che ne sono i suoi concetti chiave, ovvero:

  • Inventory: è una raccolta di nodi e gruppi ai quali Ansible può connettersi allo scopo di gestirne le configurazioni;
  • Task: sono le istruzioni che Ansible esegue sui nodi target;
  • Handler: sono istruzioni che vanno eseguite come conseguenza di una determinata azione;
  • Play: è una serie di task ordinati da eseguire sui nodi selezionati dall’inventario;
  • Playbook: è un file che contiene uno o più Play;
  • Role: rappresentano una serie di contenuti strettamente correlati che permettono di gestire meglio e mantenere una serie di Playbook.

 

 

Versioni

 

Ansible Core è la versione open-source, ma di Ansible esiste anche una versione enterprise chiamata Ansible Tower: è un enterprise framework che tra le altre caratteristiche mette a disposizione un pannello di controllo per gestire i nodi, le automazioni (attraverso interfaccia utente e RESTfulAPI) e le API. Ansible Tower è a pagamento.

 

Non perderti il prossimo evento di Commit University!

Partecipa all’evento e scopri Ansible! Un esperto del settore ci spiegherà il funzionamento di questo software e ci mostrerà una demo di un vero progetto!

Iscriviti!

http://bit.ly/2v4QfJY