Che cos'è Ansible?

È sempre consigliabile automatizzare il processo ridondante come la distribuzione o la configurazione e la gestione del server che altrimenti consumano molto tempo e sforzi. Questo è uno di questi strumenti open source sviluppato e gestito da Red Hat che automatizza il processo di provisioning, gestione della configurazione, distribuzione delle app, consegna continua, sicurezza e conformità e orchestrazione. A un livello elevato, si tratta di un semplice linguaggio di automazione in grado di descrivere l'infrastruttura delle applicazioni IT, il ciclo di vita delle app in playbook rispondibili. Sfrutta YAML, che è un linguaggio di serializzazione dei dati leggibile dall'uomo.

Comprensione

È semplice, potente e privo di agenti. Il principale fattore di differenziazione tra ansible e altri strumenti risiede nell'architettura, funziona sul modello "Push", ovvero non è necessario installare alcun software aggiuntivo sul server. Per impostazione predefinita gestisce le connessioni remote su SSH (Linux e Unix) o WinRM (Windows).

Di seguito è riportato questo diagramma di architettura di Ansible

Vediamo in dettaglio la funzionalità dei singoli componenti.

Il motore di automazione Ansible comprende un inventario, API, moduli e plug-in.

Ansible Playbook: sfrutta il playbook per l'automazione e l'orchestrazione dell'infrastruttura IT. Questo playbook consiste in un'attività di automazione che funge da input per il motore di automazione Ansible che descrive come funzionerà un particolare pezzo di automazione.

Questo playbook è costituito da una serie di "play" che definiscono l'attività di automazione attraverso un set di host noto come "Inventory". Ogni "gioco" è costituito da più attività che possono servire uno o più host presenti nell'inventario. Tutte queste attività hanno effettuato una chiamata a un modulo Ansible, che è un piccolo pezzo di codice che esegue un'attività specifica.

Un tipico esempio di attività potrebbe essere l'installazione di qualsiasi software o l'inserimento di un file di configurazione nel server. Un'attività più complessa potrebbe essere quella di far girare l'intera infrastruttura di Cloud Formation in Amazon EC2.

Viene fornito con centinaia di moduli che vanno dalla gestione dei dispositivi di rete, alla semplice gestione della configurazione, ai moduli per la manutenzione dell'infrastruttura su ogni provider cloud.

Questi moduli sono progettati in modo tale da verificare dapprima se l'attività deve essere eseguita o meno, ad esempio se un'attività responsabile deve avviare un server Tomcat, l'attività verrà eseguita solo se non è già in esecuzione. Questo fenomeno è definito come "Idempotency" che consente di eseguire ripetutamente la configurazione senza alcun caos.

Queste attività del playbook possono anche essere riutilizzate, queste unità riutilizzabili sono chiamate "Ruolo". Questi ruoli possono essere facilmente sfruttati per eseguire attività ridondanti, ad esempio per applicare la configurazione del server comune tra sviluppo, UAT e server di produzione.

Nota: non è necessario scrivere questi ruoli da zero, il sito della community di Ansible Galaxy contiene migliaia di ruoli che è possibile utilizzare e personalizzare in base alle proprie esigenze.

Cosa puoi fare con Ansible?

Con questo, è possibile automatizzare le attività di seguito indicate. vediamo alcuni esempi di particelle per capirlo in modo semplice.

Supponiamo che tu abbia un'applicazione Web Java che deve essere distribuita in più server, ad esempio dev, UAT e prod. Per distribuire il file di guerra, innanzitutto, è necessario impostare il server Web e il server di database in tutta la macchina. Inoltre, gli stessi script SQL devono essere eseguiti in tutto il database per configurare il database. Ora non ha senso eseguire manualmente questo compito ridondante.

Con tutto ciò che devi fare è scrivere semplici compiti nel playbook e Ansible eseguirà queste attività ridondanti per te.

Competenze richieste

A differenza di Puppet & Chef (strumento di automazione come Ansible) che richiede la conoscenza di Ruby, con Ansible non è necessario imparare un linguaggio di programmazione complicato. Ansible utilizza YAML, che è un linguaggio leggibile dall'uomo di alto livello che può essere facilmente compreso dall'amministratore IT. Inoltre, la maggior parte delle attività comuni sono disponibili nel modulo se playbook nella community di Ansible Galaxy che è possibile estendere in base alle proprie esigenze.

Perché dovremmo usare Ansible?

Finora abbiamo parlato di ciò che Ansible è capace. Ora vediamo perché dovremmo utilizzare Ansible nei nostri progetti.

  1. Usando questo è possibile ridurre alcuni processi da ore a minuti.
  2. Elimina le attività ripetitive
  3. Risparmia tempo e migliora la produttività.
  4. Meno errori ed errori.
  5. Aumentare la responsabilità e la conformità.

Chi è il pubblico giusto per l'apprendimento delle tecnologie Ansible?

Devi pensare che questa tecnologia sia correlata con l'infrastruttura IT e la manutenzione, che di solito è curata dall'amministratore IT o dal team di distribuzione e che tu sei uno sviluppatore non è necessario capirlo, ma mi permetta di rompere questo stereotipo. Come sapete, nello sviluppo e nelle operazioni di DevOps il lavoro è integrato, fornisce un ambiente stabile sia per lo sviluppo che per le operazioni. Pertanto, è importante che uno sviluppatore sia in grado di comprendere l'attività scritta nei playbook e, in caso di cambiamenti nell'ambiente di sviluppo, dovrebbe essere in grado di apportare modifiche al playbook per altri ambienti di conseguenza per una corretta orchestrazione del ciclo di vita dell'applicazione.

In che modo questa tecnologia ti aiuterà nella crescita della carriera?

È la tecnologia indispensabile nel tuo curriculum. Al giorno d'oggi, ogni altra azienda sta cercando di automatizzare tutti i processi possibili per aumentare la produttività e l'efficienza complessive dell'applicazione e delle risorse. Le applicazioni aziendali che in genere vengono distribuite in server diversi in tutto il mondo richiedono una configurazione e una gestione costanti del server che richiedono una buona quantità di tempo e sforzi. Se hai un'ottima conoscenza degli strumenti di automazione come Ansible e sei in grado di scrivere playbook per automatizzare questo compito ridondante, questo ti distinguerà sicuramente e ti aiuterà nella crescita della tua carriera.

Conclusione

Dopo aver letto questo articolo, devi avere una chiara comprensione di cosa sia Ansible, di cosa sia capace Ansible e come puoi migliorare l'efficienza e la produttività complessive nel tuo progetto implementando Ansible. Se vuoi approfondire questo argomento, puoi consultare il white paper e provare i playbook disponibili sul sito Web ufficiale di Red Hat Ansible.

Articoli consigliati

Questa è stata una guida a What is Ansible. Qui abbiamo discusso del funzionamento di Ansible e anche come e dove può aiutare nella crescita della carriera. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più -

  1. Come usare i comandi Ansible
  2. Che cos'è PowerShell?
  3. Che cos'è Python?
  4. Che cos'è Apache

Categoria: