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.
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.
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
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)„.
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
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
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:
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.
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
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.
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
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:
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.
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.