Cos’è Ansible – La guida definitiva

Ansible è lo strumento DevOps più ampiamente utilizzato per gestire modifiche all’interno della tua infrastruttura cloud o del data center. In questo articolo, avrai una panoramica su come funziona Ansible e su come puoi iniziare ad utilizzarlo.

Cos’è Ansible?

Ansible è uno strumento di piattaforma di automazione utilizzato per distribuire facilmente applicazioni e configurazioni di sistema su più server. Può essere utilizzato per avviare servizi Linux, creare decine di utenti Linux, aggiornare password e molto altro.

Ansible è una soluzione senza agente che gestisce le macchine tramite il protocollo Secure Shell Host (SSH). Richiede un database ma non utilizza alcun servizio di background (daemon).

Ansible utilizza comandi ad hoc integrati e playbook di Ansible per distribuire software o eseguire comandi. Inoltre, Ansible contiene centinaia di moduli per distribuire o configurare nodi remoti.

Come funziona Ansible

Ora hai un’idea di base di cosa sia Ansible. Ma per far funzionare Ansible, avrai bisogno di quattro componenti:

  1. Il Nodo di Controllo di Ansible, anche noto come host Controller di Ansible, è il server dove è installato Ansible. Questo nodo esegue tutti i comandi ad hoc di Ansible e i playbook di Ansible per distribuire o gestire le configurazioni o il software sui nodi remoti.
  2. Nodi remoti di Ansible, anche noti come nodi gestiti da Ansible, sono i server o dispositivi di rete dove si distribuiscono applicazioni o configurazioni utilizzando comandi ad hoc di Ansible o un playbook di Ansible. Questi sono anche conosciuti come host di Ansible.
  3. L’Inventario di Ansible è un file sull’host Controller di Ansible o Nodo di Controllo che contiene un elenco di tutti gli host remoti o nodi gestiti.
  4. Moduli di Ansible, anche conosciuti come moduli core di Ansible, sono i plugin di codice o librerie che possono essere utilizzati dalla riga di comando o da un’attività di playbook. Ansible esegue ogni modulo, di solito sul nodo gestito remotamente.

Perché usare Ansible?

Lavorando in IT, è probabile che tu stia svolgendo le stesse attività ripetutamente. E se potessi risolvere i problemi una volta e automatizzare le tue soluzioni in futuro? Ansible è uno strumento di gestione della configurazione che ti consente di gestire e distribuire software su nodi remoti in modo facile ed efficiente.

Ansible ha centinaia di moduli che possono essere utilizzati durante la gestione di server remoti. I moduli di Ansible sono categorizzati in due parti:

  • Moduli core di Ansible (o ansible-core) di cui abbiamo parlato in precedenza, sono i principali blocchi di costruzione e l’architettura di Ansible. Sono di proprietà e gestiti dal team core di Ansible e verranno sempre forniti insieme ad Ansible stesso.
  • Una raccolta di Ansible è un formato di distribuzione per Ansible che puoi utilizzare per impacchettare e distribuire playbook, ruoli, moduli e plugin. Una raccolta tipica affronta un insieme di casi d’uso correlati. Puoi creare una raccolta e pubblicarla su Ansible Galaxy.

? Ansible Galaxy si riferisce al sito web Galaxy dove gli utenti possono condividere ruoli, installare, creare e gestire moduli di Ansible.

Casi d’uso per Ansible

Se mi chiedi quali sono i principali casi d’uso di Ansible, non posso elencare tutto poiché ci sono centinaia di cose che Ansible può fare. Va dalle attività di base, come riavviare i servizi su nodi remoti, al deploy di applicazioni Tomcat.

Esaminiamo alcuni dei casi d’uso in cui Ansible si dimostra utile:

  • Se hai bisogno di eseguire attività e playbook su diversi sistemi con un unico comando, puoi farlo con variabili Ansible.
  • Per recuperare dati da più sistemi, puoi utilizzare fatti Ansible. I fatti Ansible sono dati raccolti dai nodi di destinazione e restituiti ai nodi controller.
  • Il vault Ansible può essere utilizzato per accedere a dati sensibili come password o per distribuire applicazioni con password sicure.
  • Ansible ha una funzionalità di lookups per accedere ai database e agli API per recuperare dati da un archivio dati esterno.

Opzioni di installazione di Ansible

Ansible è un tool facile da installare supportato su diversi sistemi operativi. Vediamo rapidamente su quali sistemi operativi Ansible è supportato.

Posso eseguire Ansible su Windows?

Non puoi installare Ansible su Windows? Tuttavia, puoi usarlo per gestire sistemi operativi basati su Windows. Ecco alcuni possibili casi d’uso:

  • Raccolta di informazioni di Ansible su host Windows.
  • Installazione e disinstallazione di MSI.
  • Abilitazione/disabilitazione delle funzionalità di Windows.
  • Avvio, arresto e gestione dei servizi di Windows.

Gestione della configurazione di Ansible

Prima di eseguire il tuo primo comando di Ansible, dovresti sapere come configurare il tuo host Controller di Ansible, l’inventario di Ansible, i playbook di Ansible, ecc.

Il file inventario di Ansible contiene l’elenco di tutti i nodi remoti di Ansible o dei nodi remoti raggruppati, che Ansible utilizza durante il dispiegamento o la gestione delle risorse.

Ci sono due modi diversi per memorizzare l’inventario di Ansible:

  1. Per impostazione predefinita, l’inventario di Ansible è memorizzato nel file /etc/ansible/hosts.
  2. Puoi anche utilizzare un percorso personalizzato specificando l’opzione -I <percorso> sulla riga di comando.

Inoltre, ci sono due modi per configurare l’inventario di Ansible:

  • Formato INI: Un file INI è un file di configurazione che consiste in nomi di gruppi tra parentesi quadre per assegnare host a diversi gruppi. Nell’esempio seguente, server1.abc.com non ha gruppi assegnati; tuttavia, server3.abc.com e server4.abc.com fanno parte di Group1.
server1.abc.com

[Group1]

server3.abc.com

server4.abc.com
  • Formato YAML: Un altro modo per dichiarare l’inventario di Ansible è utilizzando YAML, che è un super insieme di JSON, un altro linguaggio di serializzazione dei dati. La sintassi del formato YAML è definita di seguito.

Similmente a quanto spiegato sopra per il codice del formato INI, due server qui (server3.abc.com e server4.abc.com) sono membri del gruppo Group1.

all:

  hosts:

     server1.abc.com

  children:

      Group1:

        hosts:

          server3.abc.com

          server4.abc.com

Comandi ad hoc di Ansible

Se hai bisogno di eseguire un’operazione rapida come riavviare o avviare un servizio Linux su un nodo remoto di Ansible, il comando Ansible ad hoc è qui per te. I comandi ad hoc sono un modo rapido ed efficiente per eseguire un singolo comando su nodi remoti.

Ad esempio, per pingare tutti i nodi remoti di Ansible usando il comando Ad hoc di Ansible, è necessario eseguire il comando seguente. Qui, ‘all’ rappresenta tutti gli host configurati nell’inventario di Ansible e -m è il flag utilizzato insieme al modulo ping.

ansible all -m ping 
Using an Ansible Ad hoc command to ping all Ansible remote nodes

Cos’è un playbook di Ansible?

Quando è necessario eseguire più attività di Ansible simultaneamente, è necessario utilizzare i playbook di Ansible.

I playbook di Ansible ti consentono di distribuire applicazioni complesse e offrono una gestione della configurazione riutilizzabile e semplice. Supportano anche distribuzioni multi-macchina e possono essere utilizzati per eseguire più attività più volte.

I playbook di Ansible sono scritti in formato YAML e contengono più attività eseguite in ordine sequenziale. Di seguito è mostrato un esempio di playbook di Ansible.

In questo esempio, il playbook di Ansible contiene due attività di Ansible (1 e 2), che installano Apache e Java sui nodi remoti.

# Playbook apache.yml

---

- name: Ansible Playbook Examples

  hosts: servers                                         # Define all the hosts

  remote_user: ubuntu                                    # Remote_user is ubuntu

  # Defining the Ansible tasks

  tasks:                                                

  - name: Ansible Task 1

    apt:

      name: httpd

      state: latest

  tasks:                                                 

  - name: Ansible Task 2

    apt:

      name: open-jdk

      state: latest

Ansible Tower: una soluzione basata sul web

Anche se ora hai un’idea di come funziona Ansible, cosa succede se vuoi utilizzarlo senza doverlo gestire o installare?

Ansible è ospitato su una macchina Linux. Ma se desideri utilizzare la versione cloud, senza il mal di testa di gestire Ansible localmente, allora utilizza Ansible Tower, che è una soluzione basata su web. Con la versione cloud, è comunque possibile utilizzare moduli per configurare o gestire macchine remote ed eseguire comandi di Ansible o playbook di Ansible.

Ansible Tower consente anche di controllare l’accesso per tutti gli utenti, occupandosi delle credenziali SSH e dell’inventario di Ansible. Registra anche tutti i lavori, si integra bene con il Lightweight Directory Access Protocol (LDAP) e dispone di un incredibile API REST navigabile. Ansible Tower ha la capacità di scalare server e istanze se è necessario eseguire più attività sui nodi remoti.

Conclusion

Ansible è un tool gratuito con numerose funzionalità. Con questa guida, dovresti ora avere una comprensione di ciò che è possibile fare con questo strumento ricco di funzionalità! Dalla gestione delle configurazioni, all’utilizzo di vari moduli Ansible per l’esecuzione di comandi Ad hoc, playbook Ansible e distribuzione di numerosi strumenti software, Ansible è uno dei tool di automazione più ampiamente utilizzati.

Ora che hai una buona idea di come funziona Ansible, cosa intendi distribuire con esso?

Articoli correlati:


Source:
https://petri.com/what-is-ansible/