È possibile utilizzare i processi in SaltStack Config per semplificare e automatizzare le attività e le procedure di gestione della configurazione comuni eseguite regolarmente dall'utente o dal proprio team.

Che cosa sono i processi in SaltStack Config?

I processi vengono utilizzati per eseguire attività di esecuzione remota o applicare file di stato ai nodi (minion) gestiti da SaltStack Config. I processi sono in genere pensati per operazioni di sistema che devono essere automatizzate ed eseguite molte volte. È possibile creare processi per automatizzare le attività comuni eseguite regolarmente durante il provisioning, la configurazione, la distribuzione, il monitoraggio e la gestione dei nodi nel sistema. È inoltre possibile impostare l'esecuzione dei processi in base a una pianificazione regolare, ad esempio processi che verificano e impediscono regolarmente lo scostamento della configurazione.

È possibile salvare i processi ripetuti di frequente e creare gradualmente una libreria di processi da riutilizzare in futuro da parte del team. L'utilizzo di processi per la gestione della configurazione riduce il tempo trascorso dal team a installare, configurare, distribuire, aggiornare e sottoporre a manutenzione manualmente i nodi nel sistema.

Esempi di processi comuni

Per un'introduzione pratica su come funzionano i processi e per vedere alcuni esempi pratici di processi tipici, vedere i tutorial della guida introduttiva di SaltStack Config:

È possibile eseguire potenzialmente migliaia di diversi tipi di processi in SaltStack Config in base agli obiettivi e allo scopo previsti. Dopo aver identificato l'attività che si desidera eseguire o il problema da risolvere, è possibile cercare i moduli di Salt disponibili per individuare quelli che eseguono la funzione desiderata.

I processi in SaltStack Config in genere incorporano uno o più moduli di esecuzione o moduli di stato sviluppati dalla community open source di Salt. I moduli di esecuzione di Salt sono piccoli programmi contenenti codice Python che possono essere eseguiti su un minion Salt ed eseguono un'attività specifica. I moduli di stato di Salt sono simili ai moduli di esecuzione. I moduli di stato di Salt sono programmi contenenti codice Python che possono essere utilizzati all'interno dei file di stato di Salt per gestire l'applicazione di uno stato a un minion.

La tabella seguente mostra alcuni dei moduli di esecuzione e di stato più comunemente utilizzati:

Modulo Salt Descrizione

state.apply

Un modulo che applica un file di stato a un minion. Quando viene eseguito, il file di stato verifica se il minion si trova nello stato desiderato corrente. Se il minion non si trova nello stato desiderato corrente, esegue i comandi e i moduli per impostare tale minion nello stato desiderato.

Un highstate applica tutti gli stati definiti nel file top. Per ulteriori informazioni, vedere state.highstate.

pkg.installed

Un modulo di stato (nel senso che è utilizzato nei file di stato) che verifica se è installata la versione corretta di un pacchetto. Se non è installato, installa un pacchetto e garantisce che sia la versione corretta di tale pacchetto. Per ulteriori informazioni sull'installazione di pacchetti con determinati sistemi operativi, vedere salt.states.pkg.

file.managed

Un modulo di stato (nel senso che è utilizzato nei file di stato) che scarica un file dal Salt Master e inserisce tale file nei minion di destinazione per un uso successivo. Per ulteriori informazioni sulla gestione dei file con Salt, vedere salt.states.file.

service.running

Un modulo di stato (nel senso che è utilizzato nei file di stato) che verifica se un servizio è in esecuzione. Se il servizio non è in esecuzione, avvia il servizio. Per ulteriori informazioni sull'avvio o il riavvio dei servizi con Salt, vedere salt.states.service.

Per un elenco completo dei moduli di esecuzione e di stato di Salt, vedere l'Indice dei moduli di Salt.

Se Salt non dispone di un modulo necessario, è possibile estendere Salt scrivendo i propri moduli personalizzati in Python. Se desiderato, è anche possibile inviare tale modulo a Salt Project. Ufficialmente sponsorizzata da VMware, la community di Salt Project include oltre 3.000 collaboratori che lavorano in ruoli di amministrazione IT e di sistema. La community di Salt estende Salt creando tutta una serie di moduli di esecuzione e stato per eseguire le attività più comuni o risolvere i problemi più importanti che gli amministratori di sistema devono affrontare.

Panoramica del workflow dei processi

In generale, un amministratore di sistema senior crea, configura e salva le impostazioni del processo per il riutilizzo successivo. Quindi, l'amministratore senior può autorizzare un amministratore junior a eseguire questo processo su qualsiasi nodo (destinazione) a cui l'amministratore junior è autorizzato ad accedere. Quando si crea un processo, l'amministratore senior definisce gli input del processo, che si riferiscono alle impostazioni o alle variabili specifiche del processo che l'amministratore junior può modificare in fase di runtime.

Ad esempio, un amministratore di sistema senior può creare un processo che crea e distribuisce una macchina virtuale e installa un set di applicazioni o servizi di base su tale macchina. Questo processo può essere eseguito ogni volta che è necessario distribuire una nuova macchina virtuale per garantire che lo stesso set di applicazioni e configurazioni sia applicato a ogni distribuzione. Dopo aver creato questo processo di base, l'amministratore di sistema senior può consentire a un amministratore junior di eseguire questo processo nelle destinazioni (nodi) a cui è autorizzato ad accedere. Utilizzando i controlli degli accessi basati sui ruoli (RBAC) in SaltStack Config e guidati dal principio del privilegio minimo, l'amministratore senior può determinare quali processi un amministratore junior può eseguire e su quali nodi (minion).

La creazione e l'esecuzione di processi è un processo in più passaggi che richiede l'utilizzo di alcuni strumenti e aree di lavoro diversi in SaltStack Config. Il seguente diagramma offre una panoramica del workflow dei processi complessivo:

Diagramma che illustra il workflow dei processi

Ciascun passaggio è descritto negli articoli seguenti: