Ansible (software)
# Ansible (software)

In informatica Ansible è un software libero che consente di automatizzare le procedure di configurazione e gestione sui sistemi unix-like e Windows (Il nome "Ansible" si riferisce ad un oggetto fantascientifico che consente di comunicare più velocemente della luce).

## Architettura

Come per la maggior parte dei software di configurazione, Ansible sfrutta due tipi di server: nodi e macchine controllori. La macchina controllore è quella che orchestra il tutto eseguendo determinati comandi sui nodi connettendovisi attraverso una chiave di accesso SSH.

In contrasto con i più popolari software del suo genere - come Chef, Puppet e CFEngine - Ansible utilizza un'architettura agentless. In un'architettura agent-based, i nodi devono avere installato un demone che comunichi con la macchina controllore mentre con l'architettura agentless di Ansible non serve che sui nodi sia installato alcun software specifico oltre al server SSH. Questo riduce di molto l'ipotetico traffico di rete necessario per utilizzare questo programma.

### Obiettivi

* Minimale. I software gestionali non dovrebbero imporne altri come dipendenze nell'ambiente;
* Sicuro. Ansible non utilizza agenti sui nodi ma è richiesto solo il server OpenSSH;
* Affidabile. Se scritto con attenzione, un Playbook può essere in grado di gestire anche situazioni inaspettate sui nodi;
* Poco da imparare: i Playbook sono scritti in YAML, un linguaggio molto elementare basato principalmente sull'indentazione.

### Playbooks

I Playbook sono dei "libri" dai quali Ansible "legge" le istruzioni da eseguire sui nodi destinatari.

I Playbook possono anche definire dei ruoli, che eseguiranno altri Playbook per completare la configurazione.

### Ansible Tower

Ansible Tower è un API, servizio web e console realizzata per consentire l'utilizzo di Ansible a team di tecnici IT. Si tratta di un prodotto commerciale di RedHat, Inc.

Ansible AWX è un clone opensource di Tower. Anche AWX è sponsorizzato da RedHat Inc.

Scritto in Go, Semaphore è un software libero alternativo a Tower.

## Piattaforme supportate

Prima della versione 1.7 le macchine controllate potevano solo essere host Linux o Unix come ad esempio RedHat, Debian, CentOS, Ubuntu, ecc... e Python 2.6 o 2.7 deve essere installato. Dalla versione 1.7 Ansible è in grado di gestire anche nodi Windows.

### Integrazione cloud

Ansible è in grado di configurare anche ambienti emulati o cloud, inclusi Amazon Web Services, CloudStack, DigitalOcean, Eucalyptus Cloud, Google Cloud Platform, KVM, Microsoft Azure, OpenStack, Rackspace, SoftLayer, VMware e XenServer.

