Capitolo 10 – Logging, Monitoraggio e Troubleshooting
La gestione dei server non si limita a deploy e configurazione: è fondamentale monitorare lo stato e poter diagnosticare problemi rapidamente.
Ansible offre strumenti integrati per log e debug, ma è utile combinarli con best practice sysadmin.
10.1 Verbosità e Output
Per ottenere informazioni dettagliate durante l’esecuzione:
ansible-playbook playbooks/site.yml -v # livello base
ansible-playbook playbooks/site.yml -vv # più dettagli
ansible-playbook playbooks/site.yml -vvv # debug SSH e task
ansible-playbook playbooks/site.yml -vvvv # dettagli estremi (output completo)
- Utilizzare i livelli più alti solo in fase di debug
- Per grandi infrastrutture, può generare molto output
10.2 Modulo Debug
Il modulo debug è fondamentale per verificare variabili o output intermedi.
Esempio:
- name: Mostra valore di una variabile
debug:
var: http_port
- name: Mostra messaggio personalizzato
debug:
msg: "Deploy completato su {{ inventory_hostname }}"
10.3 Check Mode
Permette di simulare l’esecuzione senza modificare i server.
ansible-playbook playbooks/base.yml --check
Utile per:
- Verificare impatto dei cambiamenti
- Evitare errori in produzione
- Validare logica dei playbook
10.4 Test di Syntax
Prima di eseguire un playbook, controllarne la sintassi:
ansible-playbook playbooks/base.yml --syntax-check
Permette di:
- Evitare errori di YAML
- Verificare correttezza struttura tasks e ruoli
10.5 Registrare Output
È possibile salvare l’output di un task in una variabile per uso successivo:
- name: Controlla spazio disco
command: df -h /var
register: disco
- name: Mostra spazio disco
debug:
var: disco.stdout
registersalva l’output del task- Permette logica condizionale e troubleshooting
10.6 Gestione Errori
- Task possono essere ignorati con
ignore_errors: yes - Condizioni di fallback con
failed_when - Retry automatici con
retriesedelay(modulountil)
Esempio:
- name: Esegue comando con retry
command: /usr/bin/check_service
register: result
retries: 3
delay: 10
until: result.rc == 0
10.7 Log Centralizzato
Per infrastrutture grandi, utile salvare output dei playbook:
ansible-playbook playbooks/site.yml | tee /var/log/ansible/site.log
- Consente audit e storico modifiche
- Utile per verificare esecuzioni su più server
10.8 Best Practice Troubleshooting
- Testare playbook in staging prima di prod
- Usare
--checke--diffper evitare modifiche indesiderate - Usare
debugper variabili e output - Registrare log per audit e rollback
- Isolare task problematici per esecuzione separata
10.9 Conclusione
Un corretto approccio a logging e troubleshooting permette di:
- Rilevare problemi rapidamente
- Migliorare sicurezza e affidabilità
- Automatizzare interventi di controllo
- Mantenere infrastruttura coerente
No comments to display
No comments to display