È 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
Questo file di stato prevede tre passaggi che eseguono tre moduli di esecuzione di Salt diversi. Quando questo file di stato viene applicato a un minion, SaltStack Config:
  • 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?

Nota: È consigliabile riservare i dati del pillar per le informazioni sensibili.
I pillar sono strutture di dati archiviati nel Salt Master e passati a uno o più minion che sono stati autorizzati ad accedere a tali dati. I dati dei pillar hanno due casi d'uso principali:
  • 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:

  1. 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.
  2. 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.
  3. Nell'interfaccia utente di SaltStack Config, fare clic su Configura > File server nel menu laterale per aprire l'area di lavoro File server.
  4. 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.
  5. 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.
  6. 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.
  7. Nel corpo del file, scrivere o copiare il codice del file di stato. Ad esempio:
  8. 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.