È 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 |
---|---|
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. |
|
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. |
|
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. |
|
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:
Ciascun passaggio è descritto negli articoli seguenti: