Se gestisci più di tre server e stai ancora facendo SSH su ognuno per applicare le stesse modifiche, stai perdendo tempo che potresti dedicare ad attività più utili. Ansible è lo strumento che ha cambiato il mio modo di lavorare più di qualsiasi altro negli ultimi anni.

Perché Ansible e non altri strumenti

Ansible ha due caratteristiche che lo rendono perfetto per i team IT di dimensioni medie:

Puppet e Chef sono più potenti per ambienti enterprise grandi, ma hanno una curva di apprendimento molto più ripida. Per PMI e team fino a 10 persone, Ansible è la scelta giusta.

Installazione e primo inventario

pip install ansible
# oppure
apt install ansible

Crea il file di inventario hosts.ini:

[webservers]
web01 ansible_host=192.168.1.10
web02 ansible_host=192.168.1.11

[dbservers]
db01 ansible_host=192.168.1.20

[all:vars]
ansible_user=adminuser
ansible_ssh_private_key_file=~/.ssh/id_ed25519

Verifica la connettività con un ping ad-hoc:

ansible all -i hosts.ini -m ping

Il primo playbook: hardening base

Questo playbook applica le configurazioni SSH sicure su tutti i server:

---
- name: Hardening SSH base
  hosts: all
  become: true
  tasks:
    - name: Disabilita autenticazione password SSH
      lineinfile:
        path: /etc/ssh/sshd_config
        regexp: "^PasswordAuthentication"
        line: "PasswordAuthentication no"
      notify: restart sshd

    - name: Installa fail2ban
      apt:
        name: fail2ban
        state: present
        update_cache: yes

    - name: Abilita fail2ban
      service:
        name: fail2ban
        state: started
        enabled: yes

  handlers:
    - name: restart sshd
      service:
        name: sshd
        state: restarted
ansible-playbook -i hosts.ini hardening.yml

Idempotenza: il principio fondamentale

Ansible è idempotente: puoi eseguire lo stesso playbook cento volte e il risultato è sempre lo stesso. Se la configurazione è già corretta, Ansible non fa nulla. Questo lo rende sicuro da eseguire periodicamente come verifica della conformità.

Roles: strutturare playbook complessi

Quando i playbook crescono, usa i roles per organizzare il codice:

ansible-galaxy init roles/webserver

La struttura generata (tasks/, handlers/, templates/, vars/) permette di riutilizzare la configurazione su progetti diversi e di condividerla con il team.

Ansible Vault: gestire le credenziali in sicurezza

Non mettere mai password o chiavi API in chiaro nei playbook. Usa Ansible Vault:

ansible-vault create secrets.yml
ansible-playbook site.yml --ask-vault-pass

Dove iniziare: scegli un'operazione che ripeti ogni settimana (aggiornamenti, verifica servizi, rotazione log) e scrivici un playbook. Dopo il primo mese avrai automatizzato le attività più noiose della tua routine.

Posso aiutarti con la tua infrastruttura?

Che tu abbia un progetto da zero o un problema da risolvere, scrivimi o prenota una call gratuita di 30 minuti.

Invia un messaggio → Prenota una call gratuita ↗