Cos’è SaltStack?
SaltStack è stato sviluppato su GitHub, uno spazio virtuale per gli sviluppatori e nel marzo 2011 questo software open source è stato reso accessibile al pubblico. “Salt”, così come viene abbreviato lo strumento per la gestione della configurazione, serve alla gestione e al monitoraggio automatici di sistemi di server. Con SaltStack è possibile installare e configurare dei software da un computer centrale, nonché eseguire tanti comandi di configurazione quanti se ne desidera. Qui scoprirete quali sono le particolarità di Salt, come viene utilizzato dagli amministratori e quali sono i vantaggi che potete trarre da questo strumento di gestione.
Cosa rende così particolare SaltStack?
SaltStack è un software multipiattaforma della Apache Software Foundation che non richiede una licenza. Consente di effettuare manutenzioni a distanza, di realizzare condizioni obiettivo predefinite e di avviare delle verifiche, e ciò sia nel proprio centro dati che in un cloud esterno (indipendentemente dal gestore). Il produttore indica come vantaggi principali di SaltStack la facile installazione, la rapida gestione della comunicazione in millisecondi così come la possibilità di poter gestire parallelamente un gran numero di server.
Se confrontato direttamente con sistemi che funzionano in maniera similare come Terraform o Puppet, SaltStack spicca per i molteplici campi applicativi e la rapidità. Il principio però è lo stesso: l’amministratore definisce su un server centrale la configurazione degli altri computer. Il software per la gestione della configurazione li converte in singoli client. Per la comunicazione tra server e client SaltStack utilizza la libreria per scambio di messaggi ZeroMQ. Questa consente di distribuire in modo rapido sia piccole che grandi quantità di dati. La comunicazione viene garantita tramite la cifratura dei dati con il protocollo di crittografia simmetrica AES. Il Feature Reliable Asynchronous Event Transport (RAET), implementato nel 2014, garantisce una sicurezza ulteriore nel passaggio dei dati.
Le configurazioni vere e proprie in SaltStack funzionano tramite dati di testo in formato YAML. Il semplice linguaggio di markup consente la rappresentazione di dati strutturati in una forma rappresentativa sequenziale. Grazie al linguaggio di programmazione Python con SaltStack avete la possibilità di riunire comandi di configurazione di modo che siano pronti all’uso.
Se confrontato direttamente con sistemi che funzionano in maniera similare come Terraform o Puppet, SaltStack spicca per i molteplici campi applicativi e la rapidità. Il principio però è lo stesso: l’amministratore definisce su un server centrale la configurazione degli altri computer. Il software per la gestione della configurazione li converte in singoli client. Per la comunicazione tra server e client SaltStack utilizza la libreria per scambio di messaggi ZeroMQ. Questa consente di distribuire in modo rapido sia piccole che grandi quantità di dati. La comunicazione viene garantita tramite la cifratura dei dati con il protocollo di crittografia simmetrica AES. Il Feature Reliable Asynchronous Event Transport (RAET), implementato nel 2014, garantisce una sicurezza ulteriore nel passaggio dei dati.
Le configurazioni vere e proprie in SaltStack funzionano tramite dati di testo in formato YAML. Il semplice linguaggio di markup consente la rappresentazione di dati strutturati in una forma rappresentativa sequenziale. Grazie al linguaggio di programmazione Python con SaltStack avete la possibilità di riunire comandi di configurazione di modo che siano pronti all’uso.
Varietà di gestione con SaltStack
Oltre alla gestione di sistemi come Linux, con SaltStack è possibile organizzare anche client MacOS e Windows. SaltStack con Salt Cloud fornisce un’interfaccia universale, che vi consente di configurare e gestire molteplici sistemi. Anche i cloud privati e gli ambienti server virtuali sono così gestibili automaticamente.
Nel tutorial in lingua inglese di DevOp imparate tutto quello che dovete sapere per l’uso di Terraform e SaltStack.
Vantaggi per gli amministratori
- Indipendentemente dal sistema di destinazione su cui gli amministratori vogliono lavorare, i comandi in SaltStack restano sempre gli stessi. Così l’uso è semplice e facile da apprendere.
- Lo strumento non gestisce problemi relativamente alla distribuzione automatica delle configurazioni, ma può reagire a eventi, visto che registra il tipo di comunicazione scambiata all’interno dell’infrastruttura.
- SaltStack è completamente incluso in Salt Open e disponibile per tutti nella licenza Apache 2.0. Inoltre potete collaborare in maniera attiva alla creazione del software e se siete interessati a supportare il produttore, avete a disposizione la versione Enterprise.
Spiegazione dei termini principali
Quando utilizzate SaltStack incontrerete sempre determinati termini, che sono legati allo strumento di gestione della configurazione. Di seguito abbiamo riassunto per voi i più importanti.
Salt-Master
Il Salt-Master è stato realizzato nel linguaggio di programmazione Python ed è il server per la messaggistica ZeroMQ, che a sua volta porta i dati al client. Quando si parla di server e client troviamo anche i termini master (principale) e minion (subalterno). Per questo motivo il server di SaltStack è denominato Salt-Master. Attraverso quest’ultimo viene effettuata la regolazione centrale di tutti i sistemi di destinazione associati. Consente la trasmissione di comandi e file.
Salt-Minion
I Salt-Minion ricevono i comandi dei Salt-Master. Contemporaneamente informano gli stessi relativamente a tutti gli eventi e i risultati interessanti.
Salt-Syndic
Salt-Syndic è un Salt-Master intermedio. Interviene tra Salt-Master e Salt-Minion.
Salt-SSH
Può capitare che un Salt-Minion non sia eseguibile in un sistema di destinazione. Tramite SSH il Salt-Master può entrare in diretto contatto con questo sistema. Così salta però lo scambio tramite ZeroMQ, ciò può provocare un notevole rallentamento del processo. Inoltre possono anche venire a mancare alcune funzioni e moduli.
Salt-Proxy-Minion
Con Salt-Proxy-Minion è possibile gestire dispositivi terzi, tra cui ad esempio dispositivi di rete come router o switch.
Come funziona SaltStack?
I Salt-Minion vengono alimentati dal Salt-Master con comandi per mezzo di “bus” come ZeroMQ, SSH o Proxy-Minion. I Salt-Minion anticipano la propria comunicazione con una chiave personalizzata che il Salt-Master deve confermare al primo contatto, così che venga eseguito il comando. In questo modo tra coppie di chiavi si crea una comunicazione cifrata.
Supponiamo che vogliate configurare un software: trasmettete il corrispondente comando al Salt-Master, che lo inoltra a tutti i Minion. Il software viene poi configurato automaticamente in modo trasversale su tutti i dispositivi della struttura. Il Master può essere anche duplicato in maniera opzionale come Salt-Syndic.
Supponiamo che vogliate configurare un software: trasmettete il corrispondente comando al Salt-Master, che lo inoltra a tutti i Minion. Il software viene poi configurato automaticamente in modo trasversale su tutti i dispositivi della struttura. Il Master può essere anche duplicato in maniera opzionale come Salt-Syndic.