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