SaltStack è un programma di gestione della configurazione basato su Python che è ottimizzato per l'automazione di file di configurazione, distribuzioni e qualsiasi altra cosa nell'ambito dell'argomento del datacenter definito dal software. In questa guida imparerai come iniziare con SaltStack, aggiungendo i tuoi primi nodi e scrivendo la tua prima formula.
Requisiti
- Istanza Vultr che esegue Ubuntu 17.04 (master)
- Istanza Vultr che esegue Ubuntu 17.04 (minion)
Terminologia
SaltStack utilizza alcune parole chiave che rappresentano un dispositivo o una configurazione particolare, come spiegato di seguito:
Maestro
Questa è l'istanza principale che si collega a tutti i server aggiunti al "cluster" di SaltStack, eseguendo quindi anche qualsiasi comando / comunicazione con i server.
tirapiedi
I server che vengono aggiunti a SaltStack sono chiamati minion. Qualsiasi azione viene eseguita su uno, un gruppo o tutti i tuoi seguaci.
Formula
Una formula rappresenta un file o un insieme di file che introduce i servi quali comandi devono essere eseguiti. Può essere l'installazione di una singola applicazione come nginx
o la distribuzione di file di configurazione, ecc.
Pilastro
Un pilastro è un file che memorizza le informazioni relative a un gruppo di servi o un singolo servitore. Ad esempio, useresti questo tipo di file per memorizzare i "Virtual-Hosts" per Nginx per un determinato servitore.
Configurazione del server
Maestro
Innanzitutto, inizieremo con l'impostazione del master per il nostro cluster SaltStack:
apt-get update
apt-get dist-upgrade
apt-get install salt-master
Per impostazione predefinita, il master SaltStack non è in ascolto su nessuna interfaccia, in quanto il master di solito comunica con i minion su Internet pubblico. Dobbiamo apportare una piccola modifica al file di configurazione che può essere trovato su /etc/salt/master
:
# The address of the interface to bind to:
interface: 0.0.0.0
Dopo che le modifiche sono state scritte nel file, riavviare il servizio principale:
service salt-master restart
tirapiedi
Ora possiamo procedere con l'aggiunta del nostro primo servitore. Vai dritto e installa i pacchetti richiesti:
apt-get update
apt-get dist-upgrade
apt-get install salt-minion
Quindi, dobbiamo fare un altro piccolo cambiamento nella configurazione SaltStack del minion che può essere trovato su /etc/salt/minion
:
# Set the location of the salt master server. If the master server cannot be
# resolved, then the minion will fail to start.
master: <master_server_ip>
Sostituire <master_server_ip>
con l'indirizzo IP del server principale come impostato in precedenza. Idealmente, dovresti impostare un record DNS per questo, al fine di facilitare la modifica del server principale.
Successivamente, dobbiamo riavviare il servizio minion per rendere attive le modifiche:
service salt-minion restart
Operazioni master SaltStack
Ora abbiamo un master funzionante e un servitore impostato, quindi possiamo andare direttamente avanti e lavorare con un piccolo set di comandi SaltStack sul master.
Mostrando tutti i servi
# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Nota: abbiamo già detto al servitore a quale server master dovrebbe connettersi. Pertanto, se hai seguito questa guida, vedresti già il servitore nella Unaccepted Keys:
sezione.
Accettare un servitore non accettato
# salt-key -a <minion_id>
Accettare tutti i seguaci non accettati
# salt-key -A
Rimozione di un servitore
# salt-key -d <minion_id>
Nota: di <minion_id>
solito rappresenta il nome host UNIX dei tuoi servitori e viene archiviato nel /etc/salt/minion_id
file sui servitori.
Dopo aver aggiunto il nostro servitore al master, possiamo continuare a scrivere la nostra prima formula. Inizialmente, dobbiamo creare la cartella che memorizza le nostre formule:
mkdir -p /srv/salt/
Crea la cartella per la nostra prima formula:
mkdir -p /srv/salt/nginx
Fondamentalmente, tutte le istruzioni per una formula sono memorizzate nel init.sls
file, ad esempio /srv/salt/nginx/init.sls
. Poiché esiste una quantità immensa di operazioni che possono essere eseguite tramite una formula, scriveremo una piccola formula che installa Nginx:
nginx:
pkg:
- installed
Dopo aver scritto nel init.sls
file come spiegato sopra, possiamo andare avanti ed eseguirlo:
salt '*' state.sls nginx
Nota: nginx
rappresenta il nome della cartella che abbiamo creato in precedenza.
Conclusione
SaltStack è un ottimo software per automatizzare qualsiasi tipo di file di configurazione, distribuzioni di servizi, implementazioni iniziali di server e simili. Dato che SaltStack è basato su Python, puoi facilmente aggiungere anche i tuoi moduli, se sei fluente con la lingua. Buona automazione!