• Home
  • Ansible su Linux: come funziona e perché semplifica la vita

Guida Base: Come Funziona Ansible su Linux (e perché ti semplificherà la vita)

Se gestisci server Linux, che sia un singolo VPS per un progetto personale o un’intera flotta aziendale, sai bene quanto possa essere noioso ripetere gli stessi comandi per aggiornare i pacchetti, creare utenti o configurare servizi. È qui che entra in gioco Ansible su linux.

In questo articolo vedremo cos’è Ansible, come funziona la sua architettura su Linux e perché è diventato lo standard del settore per l’automazione IT.


Cos’è Ansible?

Ansible è uno strumento open source di IT automation e configuration management sviluppato da Red Hat. In parole povere: è un software che ti permette di automatizzare la configurazione dei server, la distribuzione del software e la gestione delle infrastrutture.

La sua caratteristica più amata? È Agentless (Senza agente). A differenza di altri strumenti (come Puppet o Chef), non devi installare nessun software client (chiamato “agente”) sui server che vuoi gestire. Ti basta una connessione SSH.


I Concetti Chiave di Ansible

Per capire come funziona, devi familiarizzare con alcuni termini fondamentali:

  1. Control Node (Nodo di Controllo): È il tuo computer o il server da cui lanci i comandi Ansible. Deve essere un sistema Linux o macOS (Windows è supportato solo tramite WSL).

  2. Managed Nodes (Nodi Gestiti): Sono i server (Linux o Windows) che vuoi configurare o aggiornare.

  3. Inventory (Inventario): Un semplice file di testo in cui elenchi gli indirizzi IP o i nomi a dominio dei tuoi Managed Nodes, spesso raggruppati per categoria (es. [webservers], [database]).

  4. Playbook: Il cuore di Ansible. Sono file scritti in YAML (un linguaggio super leggibile) in cui definisci la “ricetta”, ovvero le azioni che Ansible deve eseguire sui server.

  5. Moduli: Sono i piccoli programmi che Ansible esegue sui nodi. C’è un modulo per quasi tutto: apt per gestire i pacchetti su Ubuntu/Debian, user per creare utenti, systemd per gestire i servizi, e così via.


Come funziona “dietro le quinte”? (Il Flusso di Lavoro di Ansible su Linux)

L’approccio di Ansible è basato su un modello Push (spinta). Ecco cosa succede quando lanci un Playbook dal tuo Control Node:

  1. Lettura dell’Inventario: Ansible guarda il tuo file di inventario per capire quali server deve contattare.

  2. Connessione SSH: Si connette ai Managed Nodes utilizzando lo standard SSH (esattamente come faresti tu manualmente).

  3. Traduzione e Invio: Legge il tuo Playbook in YAML, lo traduce in script Python (il linguaggio nativo di Ansible) e invia questi script ai server di destinazione in una cartella temporanea.

  4. Esecuzione: Esegue gli script sui server remoti per applicare le configurazioni richieste.

  5. Pulizia: Una volta terminato, Ansible cancella gli script temporanei dai server remoti e si disconnette, mostrandoti un riassunto dei risultati sul tuo schermo.

Magia dell’Idempotenza: Una delle regole d’oro di Ansible è che le sue operazioni sono idempotenti. Questo significa che puoi lanciare lo stesso Playbook 100 volte, ma Ansible apporterà modifiche solo se lo stato attuale del server è diverso da quello desiderato. Se chiedi “assicurati che Nginx sia installato” e Nginx è già lì, Ansible non farà nulla e non causerà errori.


Un Esempio Pratico: Il tuo primo Playbook

Immagina di voler installare il server web Apache su tre server Ubuntu contemporaneamente.

Il tuo file Inventario (hosts.ini) sarà così:

Ini, TOML:
[webservers]
192.168.1.10
192.168.1.11
192.168.1.12

Il tuo Playbook (installa_apache.yml) sarà così:

YAML:
---
- name: Installa e avvia Apache sui webserver
  hosts: webservers
  become: yes # Esegue i comandi come root (sudo)
  tasks:
    - name: Assicurati che Apache sia installato
      apt:
        name: apache2
        state: present

    - name: Assicurati che Apache sia in esecuzione
      systemd:
        name: apache2
        state: started
        enabled: yes

Per eseguire questa magia, ti basterà lanciare un solo comando dal tuo terminale:

Bash:
ansible-playbook -i hosts.ini installa_apache.yml

Ansible si collegherà in SSH ai tre server, verificherà lo stato di Apache, lo installerà se manca e si assicurerà che il servizio sia attivo e parta all’avvio. Tutto in pochi secondi.


Conclusione

Ansible ha democratizzato l’automazione dei server. Imparare a usare Ansible su Linux non significa solo risparmiare tempo, ma anche ridurre drasticamente l’errore umano: la tua infrastruttura diventa “codice” (Infrastructure as Code), documentato, versionabile e ripetibile all’infinito.

Se non l’hai ancora provato, apri il terminale del tuo server Linux e digita sudo apt install ansible. Il tuo “te” del futuro ti ringrazierà!

Puoi attingere alla documentazione ufficiale per ottenere maggiori dettagli lato Ubuntu o Rocky Linux.

 


Segui @andymnc (Andrea Manconi) su Twitter per essere sempre aggiornato su guide ed articoli


abbonati ad Amazon Music
Condividi: