Qualche mese fa ho introdotto brevemente i lettori al software prodotto da Saltstack per la gestione e l´automatizzazione in modo centralizzato di numerose task che vedrebbero, altrimenti, impegnati gli amministratori di sistema per lunghe ore ad operare ed applicare la medesima configurazione a mano su ogni singola macchina dell´infrastruttura in cui essi amministrano.
Oggi, invece, è il turno di Ansible. Il suo autore, Michael DeHaan, già noto per aver partecipato allo sviluppo di Func (insieme a Adrian Likins ed al padre di Yum, Seth Vidal) e di Cobbler, ha lavorato prima di approdare ad AnsibleWorks (l´azienda alle spalle di Ansible) come CTO in numerose aziende di fama e di livello mondiale quali IBM, Motorola, Red Hat e PuppetLabs.
Il desiderio di creare un altro software per gestire in modo centralizzato una infrastruttura di medie o grandi dimensioni nasce, come nel caso di Thomas Hatch per Salt, da alcune problematiche riscontrate da DeHaan nell´utilizzo di Func. Michael decise, quindi, di prendere tutto ciò che c´era di buono in Func e di fonderlo con ciò che aveva imparato lavorando per PuppetLabs. Ma non solo. Michael notò che molteplici aziende usavano dei software e delle configurazioni complicatissime rispetto a ciò che veramente necessitavano, in più, molte di esse si rifiutavano di voler imparare da zero ad utilizzare applicativi quali Puppet o Chef.
Conoscendo le debolezze degli altri software, Michael costruì le fondamenta di Ansible. Chiunque avesse deciso di intraprenderne l´utilizzo lo avrebbe potuto fare senza dispendio di energie e sprechi di tempo, sarebbero bastati pochi minuti all´amministratore di sistema per comprenderne le basi e configurare la sua infrastruttura ma non solo, il sysadmin (System Administrator) di turno avrebbe potuto scrivere ed estendere i moduli di Ansible in uso utilizzando qualsiasi linguaggio di programmazione da lui conosciuto. (avendo, però, come limite l´obbligo di dover generare un output in formato JSON)
Un ulteriore punto di forza di Ansible sta nella sicurezza. Non vengono utilizzati demoni, non vengono aperte ulteriori porte in ascolto ma tutt´altro, Ansible fa uso di OpenSSH (al momento il sottosistema di sicurezza più utilizzato nel campo dell´industria informatica) per compiere tutte le sue operazioni. Qualora ci si trovi in presenza di diverse centinaia o migliaia di macchine si potrà anche ricorrere al bootstrap di un demone ZeroMQ tramite SSH riducendo drasticamente i tempi di risposta.
Ansible adotta, inoltre, una diversa filosofia nell´applicazione dei cosiddetti "playbooks" (il linguaggio utilizzato da Ansible per orchestrare i sistemi che da esso dipendono) alle macchine di riferimento: qualora ci sia un problema nell´applicazione di un cambiamento, l´intero host viene rimosso dal playbook prevenendo lo stesso problema nelle altre macchine presenti nell´infrastruttura permettendo così la correzione dell´errore da parte dell´amministratore di sistema.
Sono molti, quindi, i punti di forza di Ansible, a cui aggiungerei l´estrema facilità di installazione e di configurazione, il bassissimo utilizzo di risorse quali RAM e CPU e la semplicità di stesura dei "playbook", che a quanto si legge dalla stessa homepage del progetto "It reads like English." (si leggono come se fossero semplice inglese, nulla di più)
Qualora vi stiate chiedendo da dove derivi il termine Ansible, ebbene, è tratto dal romanzo dell´autore Orson Scott Card intitolato "Ender’s Game", in cui lo stesso Ansible era un metodo di comunicazione iperspaziale ed instantaneo tramite navi spaziali.
Ansible, infine, è già ampiamente utilizzato nell´infrastruttura del progetto Fedora ed in numerose università ed aziende americane.