# Ansible Ansible è un software open source progettato per automatizzare la gestione e configurazione di macchine di tipo Unix, oltre a piattaforme come Windows e macOS. Ansible è scritto principalmente in Python, il quale rappresenta l'unico requisito necessario per il suo utilizzo. ## Architettura Una delle caratteristiche distintive di Ansible è la sua natura `agentless`, il che significa che non non richiede l’installazione di agenti sui nodi da controllare, a differenza di altri strumenti di automazione. ## Componenti principali Il `node manager` è la macchina su cui è installato Ansible e dalla quale vengono avviate le operazioni di configurazione. I `target nodes`, invece, sono i nodi gestiti da Ansible, ai quali il software si connette tramite il protocollo SSH per eseguire le operazioni richieste. ### Inventory e playbook Tutti i file di configurazione di Ansible sono scritti nel formato `YAML`, che utilizza l’indentazione per definire la struttura e la gerarchia dei dati. Questo formato è scelto per la sua leggibilità e facilità d'uso, rendendo i file di configurazione più comprensibili. Il file `inventory` contiene l’elenco dei nodi gestiti, organizzati in gruppi o singolarmente, e può essere personalizzato in base alle esigenze dell’infrastruttura. I `playbook` sono file scritti in formato YAML che descrivono la sequenza di operazioni da eseguire sui nodi.