È possibile creare o caricare file di stato e dati dei pillar nelle aree di lavoro File server e Pillar di SaltStack Config. Se non si desidera utilizzare File server, SaltStack Config supporta anche la connessione a un repository esterno (ad esempio un repository Git) in cui è possibile salvare i file di stato e i dati dei pillar.
Che cosa sono i file di stato?
Anziché configurare manualmente ogni nodo o applicazione uno alla volta, è possibile utilizzare il sistema di gestione dello stato di SaltStack Config per creare file di stato che è possibile applicare a molti nodi contemporaneamente. Questi file di stato possono includere una serie di istruzioni che indicano a SaltStack Config quali operazioni devono essere eseguite nel nodo e in quale ordine. Possono anche spiegare quali file o impostazioni di configurazione devono essere applicati.
Dopo aver scritto o modificato un file di stato, è possibile eseguire automaticamente questi file di stato e applicarli a più nodi contemporaneamente. È possibile creare una destinazione per i nodi in base alle proprietà intrinseche di ciascun nodo (ad esempio il sistema operativo) oppure creare una destinazione per i nodi in base alle etichette personalizzate definite. Vedere Come creare le destinazioni per ulteriori informazioni.
Il sistema di gestione dello stato garantisce inoltre che ogni nodo sia configurato correttamente e nel modo più efficiente possibile. Se una configurazione ha subito uno scostamento, SaltStack Config può riportare i nodi e le applicazioni al proprio stato di configurazione conforme. Se è necessario modificare una configurazione, SaltStack Config può distribuire rapidamente tali modifiche ai nodi interessati.
Esempio di file di stato
I file di stato sono in genere scritti in YAML e Jinga, ma anche altri formati come JSON sono compatibili con Salt. Un file di stato tipico potrebbe essere simile al seguente:
install_apache: pkg.installed: - name: httpd ensure_service_running: service.running: - name: httpd - watch: - pkg: install_apache default_html_page: file.managed: - name: /var/www/html/index.html - source: salt://apache/index.html
- Installa Apache (httpd) nel minion.
- Avvia il servizio Apache.
- Distribuisce una pagina dell'indice HTML di esempio ospitata nel minion.
Che cosa sono i dati dei pillar?
- Il pillar può limitare l'accesso degli utenti a dati privati e sensibili come le password e le impostazioni di configurazione. Ad esempio, è possibile utilizzare i pillar per consentire a un utente di eseguire un processo che richiede l'autenticazione a un servizio esterno senza accedere a queste credenziali di autenticazione. In questo caso, assegnare all'utente l'accesso al processo e alla destinazione specificati, ma non al pillar che contiene dettagli di autenticazione sensibili.
- Il pillar può inviare dati che cambiano in base al contesto o al minion che richiede dati. Ad esempio, è possibile assegnare password diverse a minion diversi e archiviare tutte le password in un file del pillar. È quindi possibile scrivere un file di stato che consenta al minion di cercare la propria password univoca nel file senza dover creare più file o archiviare password in più posizioni.
I dati archiviati nell'archivio del pillar di SaltStack Config vengono crittografati utilizzando la chiave di crittografia RaaS associata all'istanza specifica di SaltStack Config (ad esempio: "/etc/raas/pki/.raas.key"). Una volta definiti nell'interfaccia utente di SaltStack Config, i dati del pillar vengono crittografati con questa chiave e archiviati nel database PostgreSQL. Questa chiave viene utilizzata anche per decrittografare i dati da visualizzare nell'interfaccia utente di SaltStack Config.
Esempio di file del pillar
I file del pillar sono in genere scritti in YAML e Jinga, ma anche altri formati come JSON sono compatibili con Salt. I dati dei pillar vengono archiviati come dizionario e utilizzano coppie chiave-valore per cercare i valori. Un file del pillar tipico potrebbe essere simile al seguente:
pillar1: value pillar2: - value - value pillar3: sub_key: - value - value
In questo esempio vengono illustrati tre metodi diversi per la formattazione dei dati dei pillar. La sintassi che si sceglie di utilizzare dipende dalle esigenze e dal tipo di dati che è necessario archiviare.
Prima di iniziare
Poiché SaltStack Config è basato su Salt, contribuisce ad avere una conoscenza di base di Salt e dei concetti relativi a queste funzionalità. Nella seguente tabella sono elencate alcune risorse utili per ulteriori informazioni:
Per informazioni su... | Vedere... |
---|---|
Nozioni di base per utilizzare Salt |
|
Stati di Salt |
|
Dati dei pillar |
|
Moduli di esecuzione e stato di Salt |
|
Dopo aver definito i dati del pillar, è possibile assegnarli a un gruppo di sistemi minion facendo clic su Aggiorna destinazioni, selezionando il gruppo di destinazione e quindi facendo clic su Salva.
Quando i dati del pillar vengono assegnati a un sistema di destinazione specifico e inclusi nei file di stato, vengono elaborati dal Master per ogni sistema di minion e crittografati con una chiave AES separata per ogni minion. Questa chiave consente di trasmettere i dati del pillar al sistema di destinazione durante il programma di un file di orchestrazione o stato.
Aggiunta di file di stato al File server
Per aggiungere un file di stato al File server in modo che possa essere utilizzato nei processi:
- Stabilire quali moduli di esecuzione o di stato di Salt possono consentire di raggiungere il risultato desiderato. Quando si individua il modulo di Salt che soddisfa le proprie esigenze, leggere la documentazione del modulo per acquisire familiarità con i parametri del modulo e gli altri requisiti.
- Facoltativo: è consigliabile scrivere una bozza del file di stato nell'editor di codice preferito e verificare che il file di stato utilizzi una sintassi correttamente formattata con un linter di codice.
- Nell'interfaccia utente di SaltStack Config, fare clic su Configura > File server nel menu laterale per aprire l'area di lavoro File server.
- Quando si apre per la prima volta l'area di lavoro File server, vengono visualizzati la directory del file e un nuovo file vuoto. Utilizzare questo file vuoto per creare un nuovo file di stato o copiare il file di stato dall'editor di codice.
- Fare clic sul menu Saltenv e selezionare l'ambiente in cui si desidera archiviare il file di stato. Se non si sa quale ambiente selezionare, utilizzare base.
- Nel campo Nome percorso, digitare il percorso e il nome del file che termina con l'estensione
.sls
. Ad esempio/my-directory/my-state-file.sls
. - Nel corpo del file, scrivere o copiare il codice del file di stato. Ad esempio:
- Salvare il file di stato e verificare che il nuovo file sia presente nella directory del File server.
Aggiunta dei dati dei pillar a un Salt Master
Anche se è possibile utilizzare l'area di lavoro Pillar di SaltStack Config per aggiungere dati dei pillar al Salt Master, potrebbe essere più semplice aggiungere i dati dei pillar direttamente nel Salt Master. Per aggiungere dati dei pillar in modo che sia possibile farvi riferimento nei file di stato o assegnarli alle destinazioni, è possibile applicare uno dei due metodi seguenti:
- Accedere tramite SSH al Salt Master e aggiungere il file dei pillar alla directory del Master utilizzando le procedure standard di Salt per l'aggiunta di file a un Master. Per ulteriori informazioni, vedere Pillar e Procedura dettagliata del pillar.
- Creare un processo nell'interfaccia utente di SaltStack Config che aggiunga i dati dei pillar al Salt Master utilizzando il comando
salt-run
che utilizza la funzionalità di esecuzione di Salt. Vedere Come creare i processi per ulteriori informazioni.
Passaggi successivi
Dopo aver creato i file di stato e i dati dei pillar a cui i minion possono accedere, è possibile fare riferimento a questi file nei processi creati in SaltStack Config. Vedere Come creare i processi per ulteriori informazioni.