adottare Ansible per la gestione della configurazione multicloud ti permetterà di ottimizzare i tempi di installazione e ridurre gli errori del fattore umani

Da alcuni mesi Poker ha instaurato un rapporto di partnership insieme a Red Hat, con l’obiettivo di migliorare i nostri servizi e adottare nuove tecnologie tra cui anche Ansible. Scopri di più sulle nostre partnership »

Cos’è Ansible?

Ansible è un software che permette di automatizzare completamente non solo le procedure di configurazione ma anche la manutenzione di sistemi Linux e Windows.

Il punto di forza di Ansible è l’idempotenza data una specifica configurazione. Un nodo avrà la stessa configurazione sia alla prima che all’n-esima esecuzione. Ansible eseguirà un’operazione correttiva sulle aree che differiscono da quanto definito nella configurazione.

Cosa può fare?

Ansible ci permette non solo di configurare i nodi della nostra infrastruttura, ma anche di effettuare deploy di nuovi nodi su piattaforme cloud, come OCI o AWS. Non sono però escluse le piattaforme locali, come vCenter e Proxmox. Tutto questo grazie all’effort dei tanti contributors della community, ma anche di Red Hat stessa. In seguito all’acquisizione infatti, Red Hat ha implementato e mantiene tuttavia una grande quantità di moduli built-in.

Perché usarlo?

Oltre a permetterci di risparmiare tempo parallelizzando l’intervento su diversi nodi, Ansible ci permette anche di riutilizzare delle configurazioni sotto forma di Collections oppure Roles. Anche in questo caso c’è un grande contributo della community, con una vasta quantità di configurazioni di pacchetti, networking, cloud, database e monitoring sulla piattaforma Ansible Galaxy.

Perdersi nella manutenzione di più nodi è molto facile. Utilizzando questo strumento si riesce ad avere conoscenza superiore dello stato in un certo momento. Si ha inoltre anche un totale controllo sull’infrastruttura, avendola ben definita come codice e facendo affidamento sull’idempotenza.

Come lo sta usando Poker?

Le nostre macchine virtuali sono interamente configurate attraverso un playbook. Il playbook si occupa del partitioning dei dischi, installazione di Docker e Docker Compose. Verranno poi applicate le policy di sicurezza necessarie per i nostri deployment. Il tempo di messa online di una VM è drasticamente calato fino al 50%, in quanto ora metà dei task necessari per l’installazione è automatizzata.

Un progetto più grosso su cui stiamo lavorando invece è l’orchestrazione di un cluster web. La necessità del nostro cliente è quella di eseguire il deploy di un cluster web e file distribuito. Si dovranno coordinare 10 macchine virtuali come manager e worker web e 3 macchine virtuali per il DFS.

Ansible ci permetterà di intervenire parallelamente su tutte le VM. Questo ci porterà ad evitare configurazioni inconsistenti e a ridurre gli errori del fattore umano.

Stiamo attivamente lavorando anche su alcune configurazioni, che diventeranno open-source per facilitare i nostri clienti nell’installazione e configurazione delle loro macchine virtuali.

Feedback sui nostri deployment

Da mesi ormai alcuni deployment sono interamente automatizzati con l’utilizzo di Ansible e stack di servizi Docker. Il nostro playbook di configurazione iniziale è cambiato per coprire maggiori casi e tipi di deployment, risolvendo eventuali errori che sono sorti durante la fase sperimentale. Il tempo di installazione di un nuovo server è drasticamente diminuito. Anche la percentuale di errori o sfasamento di configurazione tendono ad annullarsi. Insieme agli stack Docker, le nostre installazioni di SugarCRM on-premise sono totalmente riproducibili e ci permettono di intervenire più velocemente avendo un unico schema di configurazione.