SaltStack - Konfigurationsmanagement

Das Konfigurationsmanagement ist eines der wichtigsten Konzepte in SaltStack. Es wird verwendet, um eine wiederverwendbare Konfigurationsvorlage mit dem Namen a zu erstellenstate. Der Status beschreibt alles, was erforderlich ist, um eine Systemkomponente oder eine Anwendung in eine bekannte Konfiguration zu versetzen.

Salzzustand

Der Salzzustand ist eine wiederverwendbare Konfiguration für einen bestimmten Teil eines Systems. Zustände sind mit einer einfachen YAML leichter zu verstehen und zu beschreiben.

Erstellen Sie einen Salzzustand

Salzzustände sind einfach zu erstellen. Lassen Sie uns in diesem Kapitel einen einfachen Zustand erstellen. Wechseln Sie in das Verzeichnis "salt-vagrant-demo / saltstack / salt /" und erstellen Sie eine Datei mit dem Namensamples.sls und fügen Sie die folgenden Zeilen hinzu.

samples.sls

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

Speichern Sie nun die Datei und führen Sie den folgenden Befehl im Salt Master aus.

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

Hier haben wir installiert rsync, lftp und curl durch die pkg.installed Modul unter Verwendung des Salzzustands in einem Salzschergen, minion1. Wenn es richtig funktioniert, können Sie die Antwort wie unten gezeigt sehen.

Es wird Folgendes erzeugt 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

Salt State auftragen

Jetzt haben wir einen Status mit der Datei '.sls' erstellt und ihn durch gezieltes Aufrufen angewendet. Salt hat eine Standardstatusdatei namenstop.slsDatei. Die oberste Datei wird verwendet, um mehrere Statusdateien auf Salt Minions anzuwenden. Die oberste Datei beschreibt, wo Zustände angewendet werden sollen. Gut,States und die Top file Arbeiten Sie zusammen, um den Kern der Konfigurationsverwaltungsfunktionen von SaltStack zu erstellen.

Lassen Sie uns nun eine einfache top.sls-Datei im Verzeichnis erstellen saltstack/salt und fügen Sie Folgendes hinzu.

top.sls

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

Hier das state, häufig applies zu all system Zustand, samples gilt für minion1.

Führen Sie als Nächstes den Salt Master aus und wenden Sie den Status wie unten gezeigt an.

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

Es wird Folgendes erzeugt 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

Stapelgröße anwenden

Wenn Sie eine große Anzahl verbundener Schergen haben, können Sie die Anzahl der gleichzeitig aktualisierten Systeme begrenzen. Es wird mit dem ausgeführt–batch-size Option, die unten definiert ist.

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

Es wird Folgendes erzeugt 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

Salt State-Funktionen

Salt-State-Funktionen werden zum Installieren und Konfigurieren von Anwendungen auf Ihrem Remote-System verwendet. Lassen Sie uns ein "Vim" -Paket mit der Salt-Statusfunktion installieren.

Statusfunktion erstellen und anwenden

Erstellen Sie eine Datei mit dem Namen "sample.sls" im Verzeichnis "salt-vagrant-demo / saltstack / salt / sample.sls" und fügen Sie Folgendes hinzu:

sample.sls

install vim:
   pkg.installed:
      - name: vim

Sobald die Vagrant-Umgebung aktiv ist, führen Sie den Salt Master aus und wenden Sie die sample.sls an, indem Sie den folgenden Befehl ausführen.

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

Es wird Folgendes erzeugt 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

Jetzt haben wir ein Paket "Vim" hinzugefügt. Lassen Sie uns nun die Verpackung mit der Salzprüfmethode testen.

Salzzustandstest

Der Testlauf wird durch Hinzufügen der Option "test = True" zu den Status beauftragt. Die Rückgabeinformationen zeigen Zustände an, die gelb angewendet werden, und das Ergebnis wird als "Keine" gemeldet.

Der folgende Befehl wird verwendet, um den Status zu testen -

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

Es wird Folgendes erzeugt 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 ─ Säulenkomponente

Die Säule ist ein wesentlicher Bestandteil, um Salzzustände wiederverwendbar zu machen. Es wird verwendet, um sichere Daten für Schergen zu definieren, die mithilfe von Zielen zugewiesen wurden. In Salt Pillar-Daten werden Werte wie Ports, Dateipfade, Konfigurationsparameter und Kennwörter gespeichert.

Säulenkonfigurationsdatei

Die Konfiguration für die pillar_roots in der Master-Konfigurationsdatei wird unten gezeigt -

pillar_roots:
   base:
      - /srv/pillar

Hier befindet sich die Datei im Verzeichnis „/ srv / pillar“.

Beachten Sie, dass die oberste Datei in /srv/pillar/top.sls die folgende Struktur aufweist:

base:
   '*':
      - default

Wechseln Sie nun zur Datei default.sls in /srv/pillar/default.sls und fügen Sie den folgenden Code hinzu.

# Default pillar values
apache
git

Aktualisieren Sie nach dem Speichern der Datei die Säule, um alle Änderungen zu aktualisieren.

Die Säule auffrischen

Sie können die Säule mit dem folgenden Befehl aktualisieren.

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

Der obige Befehl wird verwendet, um die Salzsäulendaten aller Schergen zu aktualisieren.

Säulendaten auflisten

Um die Säulendaten aufzulisten, können Sie den folgenden Befehl verwenden.

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

Es wird Folgendes erzeugt output - -

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

Säulenelemente

Sobald die Säule eingerichtet ist, können die Daten über das Säulenmodul auf dem Minion angezeigt werden. Es kann über die Funktion zugegriffen werdenpillar.items, die unten definiert ist.

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

Es wird Folgendes erzeugt output - -

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

SaltStack - Komponente einschließen

Die Komponente 'Einschließen' wird verwendet, um dieselbe Konfigurationsaufgabe an mehreren Stellen zu definieren. Es ist einfach durchzuführen. Fügen Sie oben in Ihrer Statusdatei ein Include im folgenden Format hinzu:

include:
   - state file 1 
   - state file 2

Hier, state file 1 und state file 2sind die Namen der SLS-Dateien, die Sie einschließen möchten. Keine Notwendigkeit, die einzuschließen.slsErweiterung. Die Status "Enthaltenes Salz" werden oben in die aktuelle Datei eingefügt.

Statusdatei im Unterverzeichnis

Sie können die Statusdatei des Unterverzeichnisses mit einem Punkt (.) Einfügen. Es fungiert als Verzeichnistrennzeichen.

include:
   - dir.sls1

Körner-Schnittstelle

Grains ist eine Schnittstelle, über die Informationen über das zugrunde liegende System abgeleitet werden. Körner werden für das Betriebssystem, den Domänennamen, die IP-Adresse, den Kernel, den Betriebssystemtyp, den Speicher und viele andere Systemeigenschaften gesammelt.

Körner-Targeting

Korndaten können beim Zielen auf Schergen verwendet werden, was im folgenden Codeblock definiert ist.

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

Es wird Folgendes erzeugt output - -

minion1:
   True
minion2:
   True

Auflistung der Körner

Körner können mithilfe des unten definierten Moduls 'Körner.ls' aufgelistet werden.

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

Elemente auflisten

Wie bei Pillar können auch bei Grains-Daten die Getreidesätze aufgelistet werden.

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