• Staff Tecnico

    Ansible - Server Automation

    Ciao a tutti,

    Uso Ansible da circa un anno e mezzo ed ho pensato di aprire questo topic per capire quanti lo usano e allo stesso tempo presentarlo a chi non lo conosce.

    Cos'è Ansible?
    È uno strumento che permette di automatizzare le procedure di configurazione sui server.
    È agentless, quindi non è necessario installare un demone sulle macchine ma bastano ssh e python (preferibilmente 3.5+) che si trovano spesso pre-installati.

    Come funziona?
    Una volta installato (documentazione ufficiale) dovrete definire:

    • L'inventory: è la lista delle macchine su cui Ansible può eseguire delle operazioni, è possibile creare anche dei gruppi così da eseguire le istruzioni su tutto il gruppo. Il file può essere in formato YML o INI
    • I Playbook: sono i file YML su cui verranno inseriti tutti i task che dovranno essere eseguiti dalla macchina o dal gruppo di macchine.

    Oltre a quei file potrete creare o cercare in rete anche i Ruoli, che sono dei set di istruzioni collegate tra loro per il raggiungimento di uno scopo ben preciso (es. Installare e configurare MongoDB).
    I ruoli solitamente vengono creati per poter essere riusabili nei diversi playbook.

    Ansible Galaxy è un aggregatore che contiene diversi ruoli pronti all'uso.

    Come gestisco le password, i certificati, etc?
    Per gestire tutti i dati sensibili come password, certificati, etc si utilizza ansible-vault che crypta i dati utilizzando una password, in questo modo tutti i dati potranno essere caricati ad esempio su GIT e per potervi accedere sarà necessario inserire una password che potrà essere salvata sull'host locale all'interno di un dot file così da non doverla ogni volta inserire.

    Conclusioni
    Personalmente non tornerei più indietro, tutti i server sono facilmente ricreabili eseguendo un solo comando, questo oltre a un notevole risparmio di tempo mi da la sicurezza di non scordarmi nulla (a patto di tener sempre aggiornato il playbook).
    Oltre a questo mi sono creato dei playbook più generici per configurare dei server più semplici ma che solitamente mi avrebbero portato via qualche ora di lavoro in configurazione ed ottimizzazione.

    Chiaramente non è tutto oro quello che luccica, infatti sopratutto all'inizio il tempo speso per mettere a punto i playbook sarà molto ma ragionando sul lungo periodo sicuramente sarà tutto tempo guadagnato.

    Sicuramente ci sarà qualche imprecisione o qualche buco e col tempo verrà sicuramente migliorata (anche da voi 😄 ), al momento ho pensato di partire con questa prima presentazione dello strumento.

    Qualcuno usa o ha usato Ansible? Che cosa ne pensate?


    juanin mangi-1 2 Risposte
  • Admin

    @andreadragotta sicuramente è uno strumento molto potente anche in ottica di replicazione delle macchine su datacenter diversi e per creare ridondanza on the fly e scalare più rapidamente.

    So che Ansible ha messo in pista varie integrazioni anche con le piattaforme più note di virtualizzazione, orchestrazione, automazione etc etc sebbene Ansible stesso sia uno strumento di orchestrazione.

    La cosa bella è che permette anche di astrarre la creazione di container Docker senza dover usare Docker ad esempio che per certi versi è molto meno pratico, leggibile e intuitivo di Ansible.

    Credo sia la cosa bella di Ansible quella di rendere programmabile in maniera facile il deploy delle VM/Container organizzati in cluster.


  • Moderatore

    @andreadragotta ottimo post!
    Anche noi in host lo utilizziamo per automatizzare un sacco di cose! Confermo, scelta vincente!


  • Staff Tecnico

    Il prossimo step è quello di mettere in piedi un Ansible Tower o Ansible Semaphore, tu @mangi-1 lo hai mai usato?


    mangi-1 1 Risposta
  • Moderatore

    @andreadragotta io personalmente no, ma ho un collega che lo ha fatto.


    juanin 1 Risposta
  • Admin

    @mangi-1 allora porta il tuo collega qui dai 😄


    mangi-1 1 Risposta
  • Moderatore

    @juanin ha detto in Ansible - Server Automation:

    @mangi-1 allora porta il tuo collega qui dai 😄

    è uno di quelli 0 social, già non parla con nessuno, figurati con un JUANIN !.....


    mangi-1 juanin 2 Risposte
  • Moderatore

    @mangi-1 ci provo


  • Admin

    @mangi-1 ma qui non deve parlare. Deve scrivere.