Ansible - Introduzione

Ansible è un semplice motore IT open source che automatizza la distribuzione delle applicazioni, l'orchestrazione intra-servizio, il provisioning del cloud e molti altri strumenti IT.

Ansible è facile da implementare perché non utilizza agenti o infrastrutture di sicurezza personalizzate.

Ansible utilizza il playbook per descrivere i lavori di automazione e il playbook utilizza un linguaggio molto semplice, ad es YAML(È un linguaggio di serializzazione dei dati leggibile dall'uomo ed è comunemente utilizzato per i file di configurazione, ma potrebbe essere utilizzato in molte applicazioni in cui vengono archiviati i dati) che è molto facile da capire, leggere e scrivere per gli esseri umani. Quindi il vantaggio è che anche i ragazzi del supporto dell'infrastruttura IT possono leggere e comprendere il playbook ed eseguire il debug se necessario (YAML - È in formato leggibile dall'uomo).

Ansible è progettato per la distribuzione a più livelli. Ansible non gestisce un sistema alla volta, modella l'infrastruttura IT descrivendo che tutti i tuoi sistemi sono correlati. Ansible è completamente agentless, il che significa che Ansible funziona collegando i tuoi nodi tramite ssh (per impostazione predefinita). Ma se vuoi un altro metodo per la connessione come Kerberos, Ansible ti offre questa opzione.

Dopo essersi connessi ai propri nodi, Ansible invia piccoli programmi chiamati "moduli Ansible". Ansible esegue quei moduli sui tuoi nodi e li rimuove al termine. Ansible gestisce il tuo inventario in semplici file di testo (questi sono i file hosts). Ansible utilizza il file hosts in cui è possibile raggruppare gli host e controllare le azioni su un gruppo specifico nei playbook.

File host di esempio

Questo è il contenuto del file hosts -

#File name: hosts
#Description: Inventory file for your application. Defines machine type abc
node to deploy specific artifacts
# Defines machine type def node to upload
metadata.

[abc-node]
#server1 ansible_host = <target machine for DU deployment> ansible_user = <Ansible
user> ansible_connection = ssh
server1 ansible_host = <your host name> ansible_user = <your unix user>
ansible_connection = ssh

[def-node]
#server2 ansible_host = <target machine for artifact upload>
ansible_user = <Ansible user> ansible_connection = ssh
server2 ansible_host = <host> ansible_user = <user> ansible_connection = ssh

Cos'è la gestione della configurazione

La gestione della configurazione in termini di Ansible significa che mantiene la configurazione delle prestazioni del prodotto tenendo un registro e aggiornando le informazioni dettagliate che descrivono l'hardware e il software di un'azienda.

Tali informazioni in genere includono le versioni e gli aggiornamenti esatti applicati ai pacchetti software installati e le posizioni e gli indirizzi di rete dei dispositivi hardware. Ad esempio, se si desidera installare la nuova versione diWebLogic/WebSphere server su tutte le macchine presenti nella tua azienda, non è possibile per te andare manualmente ad aggiornare ogni macchina.

È possibile installare WebLogic / WebSphere in una volta sola su tutte le macchine con i playbook Ansible e l'inventario scritti nel modo più semplice. Tutto quello che devi fare è elencare gli indirizzi IP dei tuoi nodi nell'inventario e scrivere un playbook per installare WebLogic / WebSphere. Esegui il playbook dalla tua macchina di controllo e verrà installato su tutti i tuoi nodi.

Come funziona Ansible?

L'immagine sotto mostra il funzionamento di Ansible.

Ansible works collegandoti ai tuoi nodi e spingendo fuori piccoli programmi, chiamati "Ansible moduli "a loro. Ansiblequindi esegue questi moduli (su SSH per impostazione predefinita) e li rimuove al termine. La tua libreria di moduli può risiedere su qualsiasi macchina e non sono richiesti server, daemon o database.

Il nodo di gestione nell'immagine sopra è il nodo di controllo (nodo di gestione) che controlla l'intera esecuzione del playbook. È il nodo da cui stai eseguendo l'installazione. Il file di inventario fornisce l'elenco degli host in cui è necessario eseguire i moduli Ansible e il nodo di gestione esegue una connessione SSH ed esegue i piccoli moduli sulla macchina host e installa il prodotto / software.

Beauty di Ansible è che rimuove i moduli una volta installati in modo così efficace che si connette alla macchina host, esegue le istruzioni e se è installato correttamente rimuove il codice che è stato copiato sulla macchina host che è stato eseguito.