So installierst du SaltStack IT Automation Framework unter Debian 12

Salt oder Saltstack ist ein in Python geschriebenes Open-Source-IT-Automatisierungsframework. Es ermöglicht Administratoren, Befehle aus der Ferne direkt auf mehreren Rechnern auszuführen.

Salt ist mit einer Master- und Minion-Architektur ausgestattet. Der Salt-Master ist der zentrale Controller für das Salt-Konfigurationsmanagement, und die Minions sind Server, die vom Salt-Master verwaltet werden, oder du hast die Minions als Zielserver benannt.

Dieser Leitfaden zeigt dir, wie du SaltStack auf Debian 12-Servern installierst. Wir zeigen dir, wie du Salt Master und Minion installierst, wie du beliebige Befehle über Salt ausführst und dann den ersten Salt-Status für die Installation von LAMP Stack erstellst.

Voraussetzungen

Bevor du anfängst, solltest du sicherstellen, dass du Folgendes hast:

  • Zwei oder drei Debian 12-Server – In diesem Beispiel verwenden wir den Master-Server auf 192.168.5.15 und den Minion1-Server auf 192.168.5.21.
  • Ein Nicht-Root-Benutzer mit Administrator-Rechten.

Einrichten der Datei /etc/hosts

In diesem Abschnitt richtest du die Datei /etc/hosts ein, damit sich jeder Server über den Hostnamen verbinden kann, was einfacher ist als die Verwendung einer IP-Adresse.

Öffne die Datei /etc/hosts mit dem folgenden nano-Editor.

sudo nano /etc/hosts

Füge Details zu Host und IP-Adresse in die Datei ein. Achte darauf, dass du die IP-Adressen und Hostnamen mit deinen Angaben änderst.

192.168.5.15 master
192.168.5.21 minion1

Speichere und beende die Datei, wenn du fertig bist.

Hinzufügen des SaltStack-Repositorys

Nachdem du die Datei/etc/hosts eingerichtet hast, musst du das SaltStack-Repository zu allen deinen Debian-Servern hinzufügen. SaltStack stellt ein offizielles Repository für die meisten Linux-Distributionen zur Verfügung, auch für das aktuelle Debian 12.

Erstelle zunächst mit dem unten stehenden Befehl ein neues Verzeichnis /etc/apt/keyrings.

mkdir /etc/apt/keyrings

Lade den GPG-Schlüssel für das SaltStack-Repository mit dem unten stehenden Befehl herunter.

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg

Sobald der GPG-Schlüssel heruntergeladen ist, füge das SaltStack-Repository mit dem folgenden Befehl hinzu.

echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list

Aktualisiere nun deinen Debian-Paketindex.

sudo apt update

Unten siehst du das SaltStack-Repository, das zu Debian-Servern hinzugefügt wurde.

Repo hinzufügen

UFW einrichten

In diesem Beispiel wirst du die UFW (Uncomplicated Firewall) auf deinen Debian-Servern einrichten und aktivieren. Du installierst also UFW, öffnest den SSH-Port und startest und aktivierst UFW.

Installiere UFW auf deinem Debian-System mit dem unten stehenden Befehl.

sudo apt install ufw -y

Sobald UFW installiert ist, führe den folgenden Befehl aus, um das OpenSSH-Anwendungsprofil zu aktivieren. Du wirst sehen, dass Output Rules hinzugefügt wurde.

sudo ufw allow OpenSSH

Aktiviere nun UFW mit dem unten stehenden Befehl. Gib y ein, um UFW zu bestätigen, zu starten und zu aktivieren.

sudo ufw enable

Du erhältst die Ausgabe‚Firewall ist aktiv ...‘, sobald UFW gestartet und aktiviert ist.

ufw-Einrichtung

Installation von Salt Master

Nachdem du die oben genannten Aufgaben erledigt hast, kannst du SaltStack installieren. Du installierst und konfigurierst den Salt Master auf dem Master-Server.

Führe auf dem Master-Server den folgenden Befehl aus, um das Salt-Master-Paket zu installieren. Gib Y ein, um die Installation zu bestätigen.

sudo apt install salt-master

Salzmeister installieren

Nach Abschluss der Installation öffnest du die Standardkonfiguration von Salt Master /etc/salt/master mit dem unten stehenden Befehl nano editor.

sudo nano /etc/salt/master

Ändere die Standardschnittstelle mit deiner lokalen IP-Adresse. In diesem Beispiel ist die IP-Adresse des Masterservers 192.168.5.15.

interface: 192.168.5.15

Speichere die Datei und beende sie, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um den salt-master-Dienst neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart salt-master

Überprüfe dann den salt-master-Dienst, um sicherzustellen, dass er läuft.

sudo systemctl status salt-master

Wenn er läuft, siehst du eine Ausgabe wie “ active (running)„.

Salzmeister überprüfen

Als Nächstes führst du den unten stehenden Befehl aus, um die TCP-Ports 4505 und 4506 zu öffnen, die Salt Master verwenden wird.

sudo ufw allow 4505,4506/tcp

Überprüfe abschließend die Liste der Ports auf deinem Master-Server mit dem folgenden Befehl. Vergewissere dich, dass der Zugriff auf die Ports 4505 und 4506 erlaubt ist.

sudo ufw status

ufw-Einrichtung

Installation von Salt Minion

Nachdem du nun Salt Master konfiguriert hast, musst du Salt Manion auf dem minion1 Server konfigurieren. Du installierst salt-minion und konfigurierst es dann so, dass es sich mit dem Salt Master Server verbindet.

Installiere das Salt-Minion-Paket mit dem unten stehenden Befehl auf dem Server minion1. Gib Y ein, um die Installation zu bestätigen.

sudo apt install salt-minion

Salz-Minion installieren

Sobald die Installation abgeschlossen ist, öffne die Salt-Minion-Konfiguration /etc/salt/minion mit dem Befehl nano editor.

sudo nano /etc/salt/minion

Gib die IP-Adresse deines Salt-Masters in den Parameter master wie folgt ein:

master: 192.168.5.15

Speichere die Datei und beende den Editor.

Als Nächstes führst du den folgenden Befehl aus, um den Salt-Minion-Dienst neu zu starten und deine Änderungen zu übernehmen.

sudo systemctl restart salt-minion

Überprüfe abschließend den Salt-Minion-Dienst, um sicherzustellen, dass der Dienst läuft. Der Salt Minion meldet sich automatisch beim Salt Master Server an.

sudo systemctl status salt-minion

Vergewissere dich, dass der Salt-Minion-Dienst wie folgt läuft:

Überprüfe Salz Lakaien

Hinzufügen von Salt Minion zu Salt Master

Nachdem du Salt Minion konfiguriert hast, musst du noch den Registrierungsschlüssel von den Minion-Servern akzeptieren.

Führe zunächst den folgenden Befehl aus, um den Listenschlüssel auf dem Master-Server zu überprüfen.

salt-key --finger-all

Wenn alles klappt, kannst du den Schlüssel für den minion1-Server oder die Salt Minion-Server sehen.

Listenschlüssel

Führe nun den folgenden Befehl aus, um den Schlüssel für den minion1-Server zu akzeptieren. Gib Y ein, um den Schlüssel zu bestätigen und zu akzeptieren.

salt-key -a minion1

Überprüfe als Nächstes erneut den Listenschlüssel auf dem minion1-Server. Der Schlüssel für den Server minion1 wird im Abschnitt Akzeptierte Schlüssel angezeigt.

salt-key --finger-all

Taste akzeptieren

Jetzt kannst du die Verbindung zum Salt Minion-Server mit dem Befehl testen. Du kannst den Zielserver mit dem Hostnamen angeben oder das Zeichen „*“ verwenden, um alle verfügbaren Salt Minion-Server anzuwählen.

salt minion1 test.ping
salt * test.ping

Wenn die Verbindung zu Salt Minion erfolgreich ist, siehst du die Ausgabe„True„.

Überprüfe abschließend die Salt-Version mit dem folgenden Befehl.

salt minion1 test.version

In diesem Beispiel ist Salt Minion 3007.0 installiert.

Test Salt Ping und Version

Ausführen eines beliebigen Befehls über SaltStack

Nachdem du alles konfiguriert hast, testest du deine SaltStack-Installation, indem du den Befehl arbitrary auf dem Server minion1 vom Master-Server aus ausführst.

Führe den folgenden Befehl aus, um den Paketindex des Repositorys für Minion-Server zu aktualisieren.

salt '*' pkg.refresh_db

Führe nun den folgenden Befehl aus, um die Pakete auf dem Zielserver zu aktualisieren.

salt '*' pkg.list_upgrades

Als Nächstes führst du den folgenden Befehl aus, um Informationen über das apache2-Paket anzuzeigen.

salt '*' pkg.show apache2

Um die laufenden Dienste auf dem Minion-Server zu überprüfen, führe den folgenden Befehl aus.

salt '*' service.get_running
salt '*' service.execs

Salt-Status für die LAMP-Stack-Installation erstellen

In diesem Abschnitt erfährst du, wie du den ersten SaltState für die Installation von LAMP Stack (Apache, MariaDB und PHP) auf dem minion1-Server erstellst.

Erstelle zunächst mit dem unten stehenden Befehl ein neues Verzeichnis /srv/salt/lamp.

mkdir -p /srv/salt/lamp

Erstelle nun eine neue Salt-State-Init-Datei /srv/salt/lamp/init.sls mit dem folgenden nano-Editor.

nano /srv/salt/lamp/init.sls

Füge die unten stehende Konfiguration in die Datei ein. Damit installierst du den LAMP-Stack (Apache, MariaDB und PHP) auf dem Zielserver.

lamp_stack:
 pkg.installed:
 - pkgs:
 - apache2
 - mariadb-server
 - php
 - libapache2-mod-php
apache2:
service.running:
- enable: True
- reload: True

mariadb:
service.running:
- enable: True
- reload: True

Speichere die Datei und beende sie.

Führe nun den folgenden Befehl aus, um deine Salt-Statuskonfiguration mit Salt Minion zu überprüfen. Stelle sicher, dass du keine Fehler hast.

sudo salt * state.show_sls lamp

Prüfsalzzustand

Als Nächstes führst du den unten stehenden Befehl aus, um den Salt-Status„lamp“ auf den Server minion1 anzuwenden.

sudo salt minion1 state.apply lamp

Wenn der Vorgang abgeschlossen ist, erhältst du die folgende Ausgabe:

Erfolg Salz Staat

Führe abschließend den folgenden Befehl aus, um die Apache- und MariaDB-Dienste auf dem minion1-Server zu überprüfen.

salt '*' service.get_running

Vergewissere dich, dass die Dienste apache2 und mariadb laufen.

Dienststatus

Fazit

Herzlichen Glückwunsch! Du hast die Installation von SaltStack (Salt Master und Minion) auf Debian 12 Servern abgeschlossen. Außerdem hast du gelernt, wie du den Befehl arbitrary auf Minion-Servern ausführst und den ersten Salt-Status für die Installation von LAMP Stack (Apache2, MariaDB und PHP) erstellt.

Das könnte dich auch interessieren …