So installierst du Saltstack Master und Minion unter Debian 11
SaltStack ist eine kostenlose, quelloffene und Python-basierte Automatisierungs- und Konfigurationsmanagement-Software. Es ist ein Kommandozeilen-Tool, das dir hilft, deine Infrastruktur von einer zentralen Stelle aus zu verwalten. SoltStack besteht aus vier Komponenten. Im Folgenden werden die einzelnen Komponenten kurz erläutert:
- Salt Master fungiert als Kommandozeilen-Controller für seine Untergebenen. Er dient zur Steuerung und Verwaltung einer Reihe von Minions.
- Salt Minions sind Slave-Daemons, die Konfigurationen und Befehle vom Master erhalten.
- DieFormel sind Konfigurationsverwaltungsdateien.
- Execution ist eine Reihe von Befehlen und Modulen, die auf den Minions ausgeführt werden.
In diesem Artikel zeige ich dir, wie du SaltStack Master und Minion Systeme auf Debian 11 installierst.
Voraussetzungen
- Zwei Server, auf denen Debian 11 läuft.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Saltstack Master installieren
Standardmäßig ist SaltStack nicht im Standard-Repository von Debian 11 enthalten. Daher musst du das SaltStack-Repository zur APT hinzufügen. Du kannst es hinzufügen, indem du den folgenden Befehl ausführst:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list
Sobald das Repository hinzugefügt ist, aktualisierst du den Repository-Cache mit dem folgenden Befehl:
apt-get update -y
Als Nächstes installierst du die erforderlichen Abhängigkeiten mit dem folgenden Befehl:
apt-get install python3 salt-common -y
Als Nächstes installierst du den SaltStack-Master mit dem folgenden Befehl:
apt-get install salt-master -y
Nach der erfolgreichen Installation kannst du mit dem nächsten Schritt fortfahren.
Saltstack Master konfigurieren
Als nächstes musst du die Bind-Schnittstelle in der SaltSTack-Konfigurationsdatei definieren.
nano /etc/salt/master
Ändere die folgende Zeile:
interface: 0.0.0.0
Speichere und schließe die Datei und starte den SaltStack-Master mit dem folgenden Befehl neu:
systemctl restart salt-master
Jetzt kannst du den Status von SaltStack mit dem folgenden Befehl überprüfen:
systemctl status salt-master
Du erhältst die folgende Ausgabe:
? salt-master.service - The Salt Master Server Loaded: loaded (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-02-12 07:39:48 UTC; 9s ago Docs: man:salt-master(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html Main PID: 19403 (salt-master) Tasks: 32 (limit: 2341) Memory: 201.5M CPU: 6.109s CGroup: /system.slice/salt-master.service ??19403 /usr/bin/python3 /usr/bin/salt-master ??19407 /usr/bin/python3 /usr/bin/salt-master ??19431 /usr/bin/python3 /usr/bin/salt-master ??19434 /usr/bin/python3 /usr/bin/salt-master ??19435 /usr/bin/python3 /usr/bin/salt-master ??19436 /usr/bin/python3 /usr/bin/salt-master ??19437 /usr/bin/python3 /usr/bin/salt-master ??19444 /usr/bin/python3 /usr/bin/salt-master ??19445 /usr/bin/python3 /usr/bin/salt-master ??19446 /usr/bin/python3 /usr/bin/salt-master ??19448 /usr/bin/python3 /usr/bin/salt-master ??19451 /usr/bin/python3 /usr/bin/salt-master ??19454 /usr/bin/python3 /usr/bin/salt-master Feb 12 07:39:48 debian11 systemd[1]: Starting The Salt Master Server... Feb 12 07:39:48 debian11 systemd[1]: Started The Salt Master Server.
Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Saltstack Minion installieren und konfigurieren
Zu diesem Zeitpunkt ist SaltStack Master installiert und konfiguriert. Melde dich nun auf einem anderen Rechner an und füge das SaltStack Minion-Repository mit dem folgenden Befehl hinzu:
curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list
Sobald das Repository hinzugefügt ist, aktualisierst du den Repository-Cache mit dem folgenden Befehl:
apt-get update -y
Als Nächstes installierst du SaltStack Minion mit dem folgenden Befehl:
apt-get install salt-minion -y
Nach der erfolgreichen Installation bearbeitest du die SaltStack Minion-Konfigurationsdatei und definierst die Master-IP-Adresse.
nano /etc/salt/minion
Ändere die folgende Zeile:
master: salt-master-ip
Speichere und schließe die Datei, wenn du fertig bist.
Als Nächstes musst du die Minions mit dem öffentlichen Fingerabdruck des Masters authentifizieren.
Zeige auf dem Salt Master-Rechner alle Fingerabdrücke mit dem folgenden Befehl an:
salt-key --finger-all
Du erhältst die folgende Ausgabe:
Local Keys: master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78 master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1
Kopiere nun die Zeile master.pub fingerprint und füge sie der Minion-Konfigurationsdatei hinzu.
Auf dem Minion-Rechner bearbeitest du die Konfigurationsdatei:
nano /etc/salt/minion
Füge den Master-Fingerabdruck wie unten gezeigt hinzu:
master_finger: '5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1'
Du musst auch den Namen des Minions festlegen:
id: Minion1
Speichere und schließe die Datei und starte den SaltStack Minion mit dem folgenden Befehl neu:
systemctl restart salt-minion
Du kannst den Status des SaltStack Minion auch mit dem folgenden Befehl überprüfen:
systemctl status salt-minion
Du erhältst die folgende Ausgabe:
? salt-minion.service - The Salt Minion Loaded: loaded (/lib/systemd/system/salt-minion.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-02-12 07:46:04 UTC; 7s ago Docs: man:salt-minion(1) file:///usr/share/doc/salt/html/contents.html https://docs.saltproject.io/en/latest/contents.html Main PID: 2324 (salt-minion) Tasks: 8 (limit: 2341) Memory: 59.9M CPU: 1.185s CGroup: /system.slice/salt-minion.service ??2324 /usr/bin/python3 /usr/bin/salt-minion ??2326 /usr/bin/python3 /usr/bin/salt-minion ??2328 /usr/bin/python3 /usr/bin/salt-minion Feb 12 07:46:04 debian11 systemd[1]: Starting The Salt Minion... Feb 12 07:46:04 debian11 systemd[1]: Started The Salt Minion.
Du kannst auch den Fingerabdruck des Minions mit dem folgenden Befehl überprüfen:
salt-call key.finger --local
Du erhältst die folgende Ausgabe:
local: 14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27
Überprüfe den Fingerabdruck auf der SaltStack Master-Maschine mit dem folgenden Befehl:
salt-key --finger-all
Du erhältst die folgende Ausgabe:
Local Keys: master.pem: b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78 master.pub: 5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1 Unaccepted Keys: Minion1: 14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27
Auf dem SaltStack Master akzeptierst du den Minion mit folgendem Befehl:
salt-key -a Minion1
Du erhältst die folgende Ausgabe:
The following keys are going to be accepted: Unaccepted Keys: Minion1 Proceed? [n/Y] Y Key for minion Minion1 accepted.
Überprüfe nun die Verbindung zwischen Master und Minion mit dem folgenden Befehl:
salt Minion1 test.ping
Du erhältst die folgende Ausgabe:
Minion1: True
Wenn du fertig bist, kannst du mit dem nächsten Schritt fortfahren.
Minions vom Master aus steuern
Nach der erfolgreichen Verbindung zwischen Master und Minion. Beginnen wir damit, einige Befehle für die Minions auszuführen.
Führe den folgenden Befehl aus, um den verfügbaren Speicherplatz auf dem Minion aufzulisten:
salt '*' disk.usage
Du erhältst die folgende Ausgabe:
Minion1: ---------- /: ---------- 1K-blocks: 51538400 available: 47658628 capacity: 4% filesystem: /dev/sda1 used: 1661604 /dev: ---------- 1K-blocks: 998936 available: 998936 capacity: 0% filesystem: udev used: 0 /dev/shm: ---------- 1K-blocks: 1015232 available: 1015152 capacity: 1% filesystem: tmpfs used: 80
Um das Apache-Paket auf dem Minion zu installieren, führe den folgenden Befehl aus:
salt Minion1 pkg.install apache2
Du erhältst die folgende Ausgabe:
Minion1: ---------- apache2: ---------- new: 2.4.52-1~deb11u2 old: apache2-bin: ---------- new: 2.4.52-1~deb11u2 old: apache2-data: ---------- new: 2.4.52-1~deb11u2 old: apache2-utils: ---------- new: 2.4.52-1~deb11u2 old: libapr1: ---------- new: 1.7.0-6+deb11u1 old: libaprutil1: ---------- new: 1.6.1-5 old: libaprutil1-dbd-sqlite3: ---------- new: 1.6.1-5 old: libaprutil1-ldap: ---------- new: 1.6.1-5 old:
Um den freien Speicherplatz auf dem Minion zu überprüfen, führe den folgenden Befehl aus:
salt '*' cmd.run 'free -m'
Du erhältst die folgende Ausgabe:
Minion1: total used free shared buff/cache available Mem: 1982 140 1392 2 450 1691 Swap: 0 0 0
Salt State File zur Verwaltung von Minions verwenden
Zustandsdateien werden auch als Konfigurationsverwaltungsdateien bezeichnet und dienen der Konfiguration und Verwaltung von Minions.
Um eine State-Datei zu erstellen, musst du zunächst die Umgebungsbasis für SaltStack erstellen.
mkdir /src/salt
Als Nächstes erstellst du eine State-Datei mit dem folgenden Befehl:
nano /src/salt/setup.sls
Füge den folgenden Code ein, um PHP, UNZIP und das Apache-Paket auf Minions zu installieren:
network_utilities: pkg.installed: - pkgs: - php - unzip apache2_pkg: pkg.installed: - name: apache2 apache2_service: service.running: - name: apache2 - enable: True - require: - pkg: apache2_pkg
Speichere und schließe die Datei und wende die Konfiguration mit folgendem Befehl auf alle Minions an:
salt '*' state.apply setup
Du erhältst die folgende Ausgabe:
Minion1: ---------- ID: network_utilities Function: pkg.installed Result: True Comment: The following packages were installed/updated: php, unzip Started: 07:51:22.424504 Duration: 17349.907 ms Changes: ---------- libapache2-mod-php7.4: ---------- new: 7.4.25-1+deb11u1 old: php: ---------- new: 2:7.4+76 old: php-common: ---------- new: 2:76 old: php7.4: ---------- new: 7.4.25-1+deb11u1 old: php7.4-cli: ---------- new: 7.4.25-1+deb11u1 old: php7.4-common: ---------- new: 7.4.25-1+deb11u1 old: php7.4-json: ---------- new: 7.4.25-1+deb11u1 old: php7.4-opcache: ---------- new: 7.4.25-1+deb11u1 old: php7.4-readline: ---------- new: 7.4.25-1+deb11u1 old: psmisc: ---------- new: 23.4-2 old: unzip: ---------- new: 6.0-26 old: ---------- ID: apache2_pkg Function: pkg.installed Name: apache2 Result: True Comment: All specified packages are already installed Started: 07:51:39.780956 Duration: 1029.457 ms Changes: ---------- ID: apache2_service Function: service.running Name: apache2 Result: True Comment: The service apache2 is already running Started: 07:51:40.812210 Duration: 35.61 ms Changes: Summary for Minion1 ------------ Succeeded: 3 (changed=1) Failed: 0 ------------ Total states run: 3 Total run time: 18.415 s
Fazit
Glückwunsch! Du hast SaltStack Master und Minion erfolgreich auf einem Debian 11 Server installiert und konfiguriert. Außerdem haben wir dir erklärt, wie du Minions mithilfe von Statusdateien und der Kommandozeile verwalten kannst. Ich hoffe, das hilft dir, deine Infrastruktur zu automatisieren und von einem zentralen Ort aus zu verwalten. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.