SaltStack - Gestione della configurazione

La gestione della configurazione è uno dei concetti più significativi di SaltStack. Viene utilizzato per creare un modello di configurazione riutilizzabile, chiamato astate. Lo stato descrive tutto ciò che è necessario per inserire un componente di sistema o un'applicazione in una configurazione nota.

Stato del sale

Salt state è una configurazione riutilizzabile per una parte specifica di un sistema. Gli stati sono più facili da capire e descritti utilizzando un semplice YAML.

Crea uno stato del sale

Gli stati salini sono facili da creare. Creiamo uno stato semplice in questo capitolo. Spostati nella directory "salt-vagrant-demo / saltstack / salt /" e crea un file denominatosamples.sls e aggiungi le seguenti righe.

samples.sls

install_network_packages:
   pkg.installed:
      - pkgs:
         - rsync
         - lftp
         - curl

Ora salva il file ed esegui il seguente comando nel Salt master.

root@saltmaster:/home/vagrant# salt 'minion1’ state.apply samples

Qui, abbiamo installato rsync, lftp e curl tramite la pkg.installed modulo utilizzando lo stato di sale in un minion di sale, minion1. Se funziona correttamente, potresti vedere la risposta come mostrato di seguito.

Produrrà quanto segue output -

minion1:
----------
   ID: install_network_packages
   Function: pkg.installed
   Result: True
   Comment: All specified packages are already installed
   Started: 08:08:48.612336
   Duration: 545.385 ms
   Changes:

Summary for minion1
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 545.385 ms

Applicare Salt State

Ora che abbiamo creato uno stato utilizzando il file ".sls" e lo abbiamo applicato chiamandolo specificamente. Salt ha un file di stato predefinito chiamato cometop.slsfile. Il file in alto viene utilizzato per applicare più file di stato ai minion di Salt. Il file in alto descrive dove dovrebbero essere applicati gli stati. Bene,States e il Top file collaborare per creare il nucleo della capacità di gestione della configurazione di SaltStack.

Creiamo ora un semplice file top.sls nella directory saltstack/salt e aggiungi quanto segue.

top.sls

base:
  '*':
      - common
   'minion1':
      - samples

Qui, il state, comunemente applies per all system stato, samples si applica a minion1.

Quindi, esegui Salt master e applica lo stato come mostrato di seguito.

root@saltmaster:/home/vagrant# salt '*' state.apply

Produrrà quanto segue output -

minion1:
----------
   ID: common_packages
   Function: pkg.installed
   Result: True
   Comment: All specified packages are already installed
   Started: 09:33:35.642355
   Duration: 588.21 ms
   Changes:

Summary for minion1
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 588.210 ms
minion2:
----------
   ID: common_packages
   Function: pkg.installed
   Result: True
   Comment: All specified packages are already installed
   Started: 09:33:35.890331
   Duration: 602.79 ms
   Changes:

Summary for minion2
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 602.790 ms

Applica dimensione batch

Se hai un gran numero di servitori collegati, puoi limitare il numero di sistemi aggiornati contemporaneamente. Viene eseguito utilizzando il–batch-size opzione, che è definita di seguito.

root@saltmaster:/home/vagrant# salt --batch-size 5 '*' state.apply

Produrrà quanto segue output -

Executing run on ['minion2', 'minion1']
jid:
   20170314094638482664
minion1:
----------
   ID: common_packages
   Function: pkg.installed
   Result: True
   Comment: All specified packages are already installed
   Started: 09:46:41.228519
   Duration: 582.24 ms
   Changes:

Summary for minion1
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 582.240 ms
retcode:
   0
jid:
   20170314094638482664
minion2:
----------
   ID: common_packages
   Function: pkg.installed
   Result: True
   Comment: All specified packages are already installed
   Started: 09:46:41.153609
   Duration: 605.235 ms
   Changes:

Summary for minion2
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 605.235 ms
retcode:
   0

Funzioni di stato del sale

Le funzioni Salt State vengono utilizzate per installare e configurare le applicazioni sul sistema remoto. Installiamo un pacchetto "Vim" utilizzando la funzione Salt state.

Crea e applica la funzione di stato

Crea un file denominato "sample.sls" nella directory "salt-vagrant-demo / saltstack / salt / sample.sls" e aggiungi quanto segue:

sample.sls

install vim:
   pkg.installed:
      - name: vim

Una volta che l'ambiente Vagrant è attivo, esegui salt master e applica sample.sls eseguendo il seguente comando.

root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample

Produrrà quanto segue output -

minion2:
----------
   ID: install vim
   Function: pkg.installed
   Name: vim
   Result: True
   Comment: Package vim is installed
   Started: 15:07:45.752764
   Duration: 553.506 ms
   Changes:

Summary for minion2
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 553.506 ms

Ora, abbiamo aggiunto un pacchetto "Vim". Proviamo ora il pacchetto utilizzando il metodo di test del sale.

Salt State Testing

L'esecuzione del test è obbligatoria aggiungendo l'opzione "test = True" agli stati. Le informazioni sul reso mostreranno gli stati che verranno applicati in giallo e il risultato verrà segnalato come "Nessuno".

Il seguente comando viene utilizzato per testare lo stato:

root@saltmaster:/home/vagrant# sudo salt 'minion2’ state.apply sample test = True

Produrrà quanto segue output -

minion2:
----------
   ID: install vim
   Function: pkg.installed
   Name: vim
   Result: True
   Comment: Package vim is already installed
   Started: 15:07:45.752764
   Duration: 553.506 ms
   Changes:

Summary for minion2
------------
Succeeded: 1
Failed:    0
------------
Total states run:     1
Total run time: 553.506 ms

SaltStack ─ Componente pilastro

Il pilastro è un componente essenziale per rendere riutilizzabili gli stati del sale. Viene utilizzato per definire dati protetti per i minion assegnati utilizzando obiettivi. I dati salt pillar memorizzano valori come porte, percorsi dei file, parametri di configurazione e password.

File di configurazione del pilastro

La configurazione per pillar_roots nel file di configurazione principale è mostrato di seguito -

pillar_roots:
   base:
      - /srv/pillar

Qui, il file si trova nella directory "/ srv / pillar".

Considera, il file in alto situato in /srv/pillar/top.sls ha la seguente struttura:

base:
   '*':
      - default

Ora passa al file default.sls che si trova in /srv/pillar/default.sls e aggiungi il codice seguente.

# Default pillar values
apache
git

Dopo aver salvato il file, aggiorna il pilastro per aggiornare tutte le modifiche.

Rinfrescare il pilastro

È possibile aggiornare il pilastro utilizzando il seguente comando.

root@saltmaster:/home/vagrant# salt '*' saltutil.refresh_pillar

Il comando precedente viene utilizzato per aggiornare i dati del pilastro di sale su tutti i servitori.

Elenca i dati del pilastro

Per elencare i dati del pilastro, puoi utilizzare il comando fornito di seguito.

root@saltmaster:/home/vagrant# salt '*' pillar.ls

Produrrà quanto segue output -

minion2:
   - apache
   - git
minion1:
   - apache
   - git

Elementi pilastro

Una volta impostato il pilastro, i dati possono essere visualizzati sul servitore tramite il modulo pilastro. Vi si può accedere tramite la funzionepillar.items, che è definito di seguito.

root@saltmaster:/home/vagrant# salt '*' pillar.items

Produrrà quanto segue output -

minion2:
   ----------
   apache:
      httpd
   git:
      git
minion1:
   ----------
   apache:
      httpd
   git:
      git

SaltStack - Includi componente

Il componente "Includi" viene utilizzato per definire la stessa attività di configurazione in più posizioni. È facile da eseguire. Nella parte superiore del file di stato, aggiungi un'inclusione utilizzando il seguente formato:

include:
   - state file 1 
   - state file 2

Qui, state file 1 e state file 2sono i nomi dei file SLS che desideri includere. Non è necessario includere il file.slsestensione. Gli stati Salt inclusi vengono inseriti all'inizio del file corrente.

File di stato nella sottodirectory

È possibile includere il file di stato della sottodirectory utilizzando un punto (.). Agisce come separatore di directory.

include:
   - dir.sls1

Interfaccia grani

Grains è un'interfaccia utilizzata per ricavare le informazioni sul sistema sottostante. Vengono raccolti i grani per il sistema operativo, il nome di dominio, l'indirizzo IP, il kernel, il tipo di sistema operativo, la memoria e molte altre proprietà di sistema.

Targeting dei cereali

I dati sul grano possono essere utilizzati quando si prendono di mira i minion, che è definito nel seguente blocco di codice.

root@saltmaster:/home/vagrant# salt -G 'os:Ubuntu' test.ping

Produrrà quanto segue output -

minion1:
   True
minion2:
   True

Elenco dei cereali

I grani possono essere elencati utilizzando il modulo 'grains.ls', definito di seguito.

root@saltmaster:/home/vagrant# salt '*' grains.ls

Elementi della lista

Come Pillar, anche i dati di Grains possono essere elencati utilizzando "grains.items".

root@saltmaster:/home/vagrant# salt '*' grains.items