SaltStack ist eine kostenlose Open-Source- und Python-basierte Automatisierungs- und Konfigurationsverwaltungssoftware. Es ist ein Befehlszeilentool, mit dem Sie Ihre Infrastruktur von einem zentralen Ort aus verwalten können. SoltStack besteht aus vier Komponenten. Nachfolgend finden Sie eine kurze Erläuterung der einzelnen Komponenten:
- Salzmeister fungiert als Befehlszeilen-Controller für seine Schergen. Es wird verwendet, um eine Reihe von Dienern zu kontrollieren und zu verwalten.
- Salzminions sind Slave-Daemons, die Konfigurationen und Befehle vom Master erhalten.
- Formel sind Konfigurationsverwaltungsdateien.
- Ausführung ist eine Reihe von Befehlen und Modulen, die auf den Minions ausgeführt werden.
In diesem Artikel zeige ich Ihnen, wie Sie SaltStack Master- und Minion-Systeme unter Debian 11 installieren.
Voraussetzungen
- Zwei Server mit Debian 11.
- Auf dem Server ist ein Root-Passwort konfiguriert.
Saltstack-Master installieren
Standardmäßig ist SaltStack nicht im Standard-Repository von Debian 11 enthalten. Sie müssen also das SaltStack-Repository zu APT hinzufügen. Sie können es hinzufügen, indem Sie den folgenden Befehl ausführen:
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 wurde, aktualisieren Sie den Repository-Cache mit dem folgenden Befehl:
apt-get update -y
Installieren Sie als Nächstes die erforderlichen Abhängigkeiten mit dem folgenden Befehl:
apt-get install python3 salt-common -y
Als nächstes installieren Sie den SaltStack-Master mit dem folgenden Befehl:
apt-get install salt-master -y
Nach erfolgreicher Installation können Sie mit dem nächsten Schritt fortfahren.
Saltstack-Master konfigurieren
Als nächstes müssen Sie die Bind-Schnittstelle in der SaltSTack-Konfigurationsdatei definieren.
nano /etc/salt/master
Ändern Sie die folgende Zeile:
Schnittstelle:0.0.0.0
Speichern und schließen Sie die Datei und starten Sie dann den SaltStack-Master mit dem folgenden Befehl neu:
systemctl startet Salt-Master neu
Sie können jetzt den Status des SaltStacks mit dem folgenden Befehl überprüfen:
Systemctl-Status Salt-Master
Sie erhalten die folgende Ausgabe:
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Saltstack Minion installieren und konfigurieren
An diesem Punkt ist SaltStack Master installiert und konfiguriert. Melden Sie sich jetzt bei einem anderen Computer an und fügen Sie 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 wurde, aktualisieren Sie den Repository-Cache mit dem folgenden Befehl:
apt-get update -y
Als nächstes installieren Sie den SaltStack Minion mit dem folgenden Befehl:
apt-get install Salt-Minion -y
Bearbeiten Sie nach erfolgreicher Installation die SaltStack Minion-Konfigurationsdatei und definieren Sie die Master-IP-Adresse.
nano /etc/salt/minion
Ändern Sie die folgende Zeile:
master:Salt-Master-IP
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Als Nächstes müssen Sie die Minions mit dem öffentlichen Fingerabdruck des Masters authentifizieren.
Listen Sie auf dem Salt Master-Computer alle Fingerabdrücke mit dem folgenden Befehl auf:
Salztaste --finger-all
Sie erhalten die folgende Ausgabe:
Lokale Schlüssel: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:78master.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
Kopieren Sie nun die Fingerprint-Zeile master.pub und fügen Sie sie der Minion-Konfigurationsdatei hinzu.
Bearbeiten Sie auf dem Minion-Computer die Konfigurationsdatei:
nano /etc/salt/minion
Fügen Sie 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'
Sie müssen auch den Namen des Dieners definieren:
ID:Minion1
Speichern und schließen Sie die Datei und starten Sie dann den SaltStack Minion mit dem folgenden Befehl neu:
systemctl startet Salt-Minion neu
Sie können den Status des SaltStack Minion auch mit dem folgenden Befehl überprüfen:
systemctl status Salt-Minion
Sie erhalten die folgende Ausgabe:
Sie können den Minion-Fingerabdruck auch mit dem folgenden Befehl überprüfen:
salt-call key.finger --local
Sie erhalten die folgende Ausgabe:
lokal: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
Gleichen Sie auf dem SaltStack Master-Computer den Fingerabdruck mit dem folgenden Befehl ab:
Salztaste --finger-all
Sie erhalten die folgende Ausgabe:
Lokale Schlüssel: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:78master.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:d1Nicht akzeptierte Schlüssel: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
Akzeptieren Sie auf dem SaltStack-Master den Minion mit dem folgenden Befehl:
salt-key -a Minion1
Sie erhalten die folgende Ausgabe:
Die folgenden Schlüssel werden akzeptiert:Nicht akzeptierte Schlüssel:Minion1Fortfahren? [n/Y] YKey für Minion Minion1 akzeptiert.
Überprüfen Sie nun die Verbindung zwischen Master und Minion mit dem folgenden Befehl:
salt Minion1 test.ping
Sie erhalten die folgende Ausgabe:
Minion1:Richtig
Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.
Steuere Schergen vom Meister
Nach der erfolgreichen Verbindung zwischen Master und Minion. Beginnen wir damit, einige Befehle auf den Minions auszuführen.
Führen Sie den folgenden Befehl aus, um den verfügbaren Speicherplatz auf Minion aufzulisten:
Salt '*' disk.usage
Sie erhalten die folgende Ausgabe:
Minion1:---------- /:---------- 1K-Blöcke:51538400 verfügbar:47658628 Kapazität:4% Dateisystem:/dev/sda1 verwendet:1661604 /dev :---------- 1K-Blöcke:998936 verfügbar:998936 Kapazität:0% Dateisystem:udev verwendet:0 /dev/shm:---------- 1K-Blöcke:1015232 verfügbar :1015152 Kapazität:1% Dateisystem:tmpfs verwendet:80
Führen Sie den folgenden Befehl aus, um das Apache-Paket auf dem Minion zu installieren:
salt Minion1 pkg.install apache2
Sie erhalten die folgende Ausgabe:
Minion1:---------- Apache2:---------- neu:2.4.52-1~deb11u2 alt:apache2-bin:-------- -- neu:2.4.52-1~deb11u2 alt:apache2-data:---------- neu:2.4.52-1~deb11u2 alt:apache2-utils:-------- -- neu:2.4.52-1~deb11u2 alt:libapr1:---------- neu:1.7.0-6+deb11u1 alt:libaprutil1:---------- neu:1.6.1-5 alt:libaprutil1-dbd-sqlite3:---------- neu:1.6.1-5 alt:libaprutil1-ldap:---------- neu:1.6. 1-5 Jahre alt:
Führen Sie den folgenden Befehl aus, um den freien Speicher auf dem Minion zu überprüfen:
salt '*' cmd.run 'free -m'
Sie erhalten die folgende Ausgabe:
Minion1:insgesamt verwendeter kostenloser gemeinsamer Buff/Cache verfügbar Speicher:1982 140 1392 2 450 1691 Swap:0 0 0
Salt-State-Datei zum Verwalten von Minions verwenden
Statusdateien werden auch als Konfigurationsverwaltungsdateien bezeichnet, die zum Konfigurieren und Verwalten von Minions verwendet werden.
Um eine Zustandsdatei zu erstellen, müssen Sie die Umgebungsbasis für SaltStack erstellen.
mkdir /src/salt
Erstellen Sie als Nächstes eine Statusdatei mit dem folgenden Befehl:
nano /src/salt/setup.sls
Fügen Sie den folgenden Code hinzu, um das PHP-, UNZIP- und 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
Speichern und schließen Sie die Datei und wenden Sie dann die Konfiguration mit dem folgenden Befehl auf alle Minions an:
salt '*' state.apply setup
Sie erhalten die folgende Ausgabe:
Minion1:---------- ID:network_utilities Funktion:pkg.installed Ergebnis:True Kommentar:Die folgenden Pakete wurden installiert/aktualisiert:php, unzip Begonnen:07:51:22.424504 Dauer:17349.907 ms Änderungen:---------- libapache2-mod-php7.4:---------- neu:7.4.25-1+deb11u1 alt:php:------- --- neu:2:7.4+76 alt:php-common:---------- neu:2:76 alt:php7.4:---------- neu:7.4 .25-1+deb11u1 alt:php7.4-cli:---------- neu:7.4.25-1+deb11u1 alt:php7.4-common:--------- - Neu:7.4.25-1+deb11u1 alt:php7.4-json:---------- neu:7.4.25-1+deb11u1 alt:php7.4-opcache:-------- -- neu:7.4.25-1+deb11u1 alt:php7.4-readline:---------- neu:7.4.25-1+deb11u1 alt:psmisc:-------- -- neu:23.4-2 alt:entpacken:---------- neu:6.0-26 alt:---------- ID:apache2_pkg Funktion:pkg.installed Name:apache2 Ergebnis :True Kommentar:Alle angegebenen Pakete sind bereits installiert Gestartet:07:51:39.780956 Dauer:1029,457 ms Änderungen:---------- ID:apache2_service Funktion:serv ice.running Name:apache2 Ergebnis:True Kommentar:Der Dienst apache2 läuft bereits Started:07:51:40.812210 Dauer:35,61 ms Änderungen:Zusammenfassung für Minion1------------Erfolgreich:3 (geändert =1)Fehlgeschlagen:0------------Gesamtstatus ausgeführt:3Gesamtlaufzeit:18.415 s
Schlussfolgerung
Herzliche Glückwünsche! Sie haben SaltStack Master und Minion erfolgreich auf dem Debian 11-Server installiert und konfiguriert. Wir haben auch erklärt, wie Minions mithilfe von Statusdateien und der Befehlszeile verwaltet werden. Ich hoffe, dies wird Ihnen helfen, Ihre Infrastruktur von einem zentralen Standort aus zu automatisieren und zu verwalten. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.