IT Automation · 8 min read · Oct 26, 2025

Erste Schritte mit dem Salt IT-Automatisierungsframework auf AlmaLinux 9

Salt oder Saltstack ist ein Open-Source-IT-Automatisierungsframework, das es Administratoren ermöglicht, Befehle remote auf mehreren Maschinen direkt auszuführen. Salt ist hauptsächlich in Python geschrieben und verwendet eine Master- und Minion-Architektur. Der SaltStack-Master ist der zentrale Controller des Salt-Konfigurationsmanagements, und Minions sind Server, die vom SaltStack-Master verwaltet werden, oder Sie nennen Minions Zielserver.

Der SaltStack-Master läuft standardmäßig auf Linux-Betriebssystemen, aber Minions können auf jedem Betriebssystem verwendet werden. Saltstack ist ein revolutionäres Konfigurationsmanagement für die Automatisierung von Bereitstellungen, die Ausführung von Remote-Aufgaben und Infrastruktur als Code. SaltStack kann auch verwendet werden, um mehrere Infrastrukturserver bereitzustellen, einschließlich physischer und virtueller Server sowie in der Cloud.

Dieses Tutorial zeigt Ihnen, wie Sie Salt auf AlmaLinux 9-Servern installieren. Sie werden auch die grundlegende Verwendung von Salt-Modulen lernen und das erste Salt-Statusprojekt erstellen. In diesem Fall werden Sie ein Salt-Statusprojekt zur Installation des LEMP-Stacks erstellen.

Voraussetzungen

Um mit diesem Leitfaden zu beginnen, stellen Sie sicher, dass Sie Folgendes haben:

  • 3 AlmaLinux 9-Server.
  • Einen Nicht-Root-Benutzer mit sudo-Administratorrechten.
  • Ein SELinux mit dem Status Erlaubt oder Deaktiviert.

Firewalld auf Salt Master einrichten

Bevor Sie Salt installieren, müssen Sie die Ports 4505 und 4506 auf dem Salt-Master-Server öffnen, die von den Salt-Minions verwendet werden, um sich mit dem Salt-Master zu verbinden. Um dies zu erreichen, verwenden Sie Firewalld.

Führen Sie den folgenden Befehl aus, um die Ports 4505 und 4506 für den Salt-Master-Server zu öffnen.

sudo firewall-cmd --zone=public --permanent --add-port={4505,4506}/tcp

Laden Sie nun die Firewalld neu, um die Änderungen anzuwenden, und überprüfen Sie dann die Liste der offenen Ports auf Firewalld mit dem folgenden Befehl.

sudo firewall-cmd --reload  
sudo firewall-cmd --list-all

Nach dem Ausführen des Befehls sind die Ports 4505 und 4506 zu Firewalld hinzugefügt.

setup firewalld

Salt-Repository hinzufügen

Salt-Pakete sind im offiziellen Salt-Repository verfügbar. Jetzt werden Sie das Salt-Repository zu allen Ihren AlmaLinux-Servern hinzufügen, sowohl Salt Master als auch Minions.

Führen Sie den folgenden Befehl aus, um den Salt GPG-Schlüssel zu importieren.

sudo rpm --import https://repo.saltproject.io/salt/py3/redhat/9/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pub

Laden Sie nun das Salt-Repository mit dem folgenden Befehl auf Ihre Systeme herunter.

curl -fsSL https://repo.saltproject.io/salt/py3/redhat/9/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo

add repo

Sobald der Salt GPG-Schlüssel und das Repository hinzugefügt wurden, führen Sie den dnf-Befehl unten aus, um die Liste der verfügbaren Repositories auf Ihren Systemen zu überprüfen und Metadaten für alle verfügbaren Repositories herunterzuladen.

sudo dnf repolist  
sudo dnf makecache

Angenommen, der Befehl war erfolgreich, sollte die Ausgabe ähnlich wie folgt aussehen:

reload repo

Salt Master installieren und konfigurieren

Nachdem Sie das Salt-Repository hinzugefügt haben, installieren und konfigurieren Sie das Paket salt-master auf dem Haupt-Salt-Master-Server.

Installieren Sie das salt-master-Paket mit dem dnf-Befehl unten. Geben Sie y ein, wenn Sie zur Fortsetzung der Installation aufgefordert werden.

sudo dnf install salt-master

install salt-master

Sobald die Installation abgeschlossen ist, öffnen Sie die Standard-Salt-Konfiguration /etc/salt/master mit dem folgenden Befehl des Nano-Editors.

sudo nano /etc/salt/master

Ändern Sie die Standard-Interface-Option mit Ihrer lokalen IP-Adresse und die ID-Option mit Ihrem Server-Hostnamen. In diesem Fall ist der Salt-Master-Server mit der lokalen IP-Adresse 192.168.5.50 und dem Hostnamen master konfiguriert.

interface: 192.168.5.50  
id: master

Wenn Sie fertig sind, speichern Sie die Datei und schließen Sie sie.

Führen Sie als Nächstes den folgenden systemctl-Befehl aus, um den salt-master-Dienst zu starten und zu aktivieren.

sudo systemctl start salt-master  
sudo systemctl enable salt-master

Überprüfen Sie schließlich den salt-master-Dienst, um sicherzustellen, dass der Dienst läuft, indem Sie den folgenden Befehl ausführen.

sudo systemctl status salt-master

Bei erfolgreicher Ausführung sollte die angezeigte Ausgabe active (running) sein, was darauf hinweist, dass der salt-master-Dienst läuft.

check salt-master

Salt Minion installieren und konfigurieren

Nachdem Sie den Salt Master konfiguriert haben, besteht der nächste Schritt darin, salt-minion zu installieren und die Minion-Server zu konfigurieren, um sich mit dem Salt Master zu verbinden.

Führen Sie den dnf-Befehl unten aus, um das salt-minion-Paket auf Ihren Minion-Servern zu installieren. Geben Sie y ein, um die Installation zu bestätigen.

sudo dnf install salt-minion

install salt-minion

Nach der Installation öffnen Sie die Standard-Salt-Konfiguration /etc/salt/minion mit dem folgenden Befehl des Nano-Editors.

sudo nano /etc/salt/minion

Geben Sie innerhalb der Master-Option die IP-Adresse des Salt Masters ein.

master: 192.168.5.50

Geben Sie die lokale IP-Adresse des Minions in der Interface-Option ein und geben Sie den Server-Hostnamen in der ID-Option ein.

interface: 192.168.5.20  
id: minion1

Speichern Sie die Datei und beenden Sie den Editor, wenn Sie fertig sind.

Führen Sie als Nächstes den folgenden systemctl-Befehl aus, um den salt-minion-Dienst zu starten und zu aktivieren.

sudo systemctl start salt-minion  
sudo systemctl enable salt-minion

Sobald der salt-minion-Dienst gestartet ist, überprüfen Sie ihn mit dem folgenden Befehl.

sudo systemctl status salt-minion

Wenn alles gut geht, wird die Ausgabe active (running) sein, was bestätigt, dass der salt-minion-Dienst läuft.

check salt-minion

Salt Minions beim Salt Master registrieren

An diesem Punkt läuft der salt-minion-Dienst. Daraufhin senden die Salt Minions eine Anfrage, um sich beim Salt Master zu registrieren. Um die Registrierung des Salt Minions zu beantragen, müssen Sie den Fingerabdruckschlüssel auf dem Salt Master akzeptieren.

Wechseln Sie zum Salt Master und führen Sie den salt-key-Befehl unten aus, um die Liste der Fingerabdruckschlüssel zu erhalten.

salt-key --finger-all

Hier sind die Fingerabdrücke der Salt Minion-Server minion1 und minion2, die sich noch im Status ‘ Unaccepted Keys ‘ befinden.

list keys

Führen Sie den folgenden Befehl aus, um den Salt Minion-Schlüssel für die Server minion1 und minion2 zu akzeptieren.

salt-key -a minion1  
salt-key -a minion2

Geben Sie Y ein, wenn Sie zur Annahme des Schlüssels aufgefordert werden, und Sie sollten eine Ausgabe wie ‘ Key for minion minion1/2 accepted ‘ erhalten.

accept keys

Überprüfen Sie nun die Liste der Fingerabdruckschlüssel auf dem Salt Master erneut mit dem folgenden Befehl.

salt-key --finger-all

Hier ist der Fingerabdruck des Salt Minions für die Server minion1 und minion2 im Abschnitt Accepted Keys verfügbar.

Sie können jetzt die Salt Minion-Server vom Salt Master aus über die Salt-Befehlszeile steuern.

Führen Sie den folgenden Salt-Befehl aus, um die Verbindung zwischen Salt Master und Minions zu überprüfen und die Salt-Version auf den Minion-Servern zu überprüfen.

salt '*' test.ping  
salt '*' test.version

Wenn die Verbindung zwischen Salt Master und Minion erfolgreich ist, wird die Ausgabe True angezeigt. Außerdem können Sie sehen, dass Salt 3006.4 installiert ist, was das Ergebnis des test.version-Parameters ist.

test salt

Zusätzlich können Sie den Zielminion mit dem Salt-Befehl wie folgt angeben.

salt minion1 test.ping

Grundlegende Verwendung des Salt State Moduls

Im folgenden Abschnitt lernen Sie, wie Sie das Salt State-Modul zur Verwaltung von Minion-Servern verwenden. Sie werden einige Salt State-Module erkunden, wie cmd zum Ausführen beliebiger Linux-Befehle, pkg zur Verwaltung von Paketen und Repositories sowie das Service-Modul zur Verwaltung von Diensten.

Ausführen beliebiger Befehle über das cmd-Modul

Führen Sie den folgenden Befehl aus, um spezifische Linux-Befehle über das cmd-Statusmodul auszuführen. In diesem Beispiel überprüfen Sie die Details des Linux-Kernels über den Befehl uname -a.

salt '*' cmd.run 'uname -a'

Verwalten von Paketen und Repositories über das pkg-Modul

Verwenden Sie nun das folgende pkg-Statusmodul, um Pakete und Repositories auf Ihren Minion-Servern zu verwalten.

Überprüfen Sie die Liste der Repositories über pkg.list_repos und aktualisieren Sie dann die Repositories über pkg.refresh_db.

salt '*' pkg.list_repos  
salt '*' pkg.refresh_db

Sie können auch die Liste der verfügbaren Paketaktualisierungen mit dem Argument pkg.list_upgrades unten überprüfen.

salt '*' pkg.list_upgrades

Um ein bestimmtes Paket zu installieren, verwenden Sie das folgende pkg.install.

salt '*' pkg.install vim

pkg install

Verwalten von Diensten über das Service-Modul

Als Nächstes können Sie das Service-Statusmodul verwenden, um Dienste auf Ihren Minion-Servern zu verwalten.

Verwenden Sie das Argument service.available, um sicherzustellen, dass der Dienst auf dem Zielserver verfügbar ist. Oder verwenden Sie das Argument service.enabled, um sicherzustellen, dass der Zielservice aktiviert ist, oder Sie können auch das service.get_running verwenden, um sicherzustellen, dass der Dienst läuft.

salt '*' service.available chronyd  
salt '*' service.enabled chronyd  
salt '*' service.get_running

check service

Zuletzt können Sie auch den Startbefehl überprüfen, der von einem bestimmten Dienst ausgeführt wird, indem Sie das Argument service.execs verwenden.

salt '*' service.execs

Erstellen des ersten Salt-Status

In diesem Abschnitt erstellen Sie das erste Salt-Statusprojekt zur Installation des LEMP-Stacks (Nginx, MariaDB und PHP-FPM) auf den Ziel-Minions-Servern.

Bevor Sie fortfahren, führen Sie den folgenden Befehl aus, um das Repository-Modul zu aktivieren, das für die Installation spezifischer Versionspakete verwendet wird.

salt '*' cmd.run 'sudo dnf module enable nginx:1.22 -y'  
salt '*' cmd.run 'sudo dnf module enable php:8.1 -y'

enable repo module via salt

Erstellen Sie nun ein neues Konfigurationsverzeichnis /srv/salt/, das zur Speicherung Ihres Salt-Status verwendet wird.

mkdir -p /srv/salt/

Führen Sie den folgenden Befehl aus, um ein neues Projektverzeichnis /srv/salt/lemp und die Datei init.sls zu erstellen.

mkdir -p /srv/salt/lemp  
nano /srv/salt/lemp/init.sls

Fügen Sie die folgende Konfiguration in die Datei ein. In diesem Fall installieren Sie die LEMP-Stack-Pakete auf Minion-Servern über das pkg-Statusmodul und stellen sicher, dass jeder Dienst läuft und aktiviert ist, indem Sie das service-Statusmodul verwenden.

lemp_stack:  
  pkg.installed:  
   - pkgs:  
     - nginx  
     - mariadb-server  
     - php  
     - php-fpm  
  
ginx:  
  service.running:  
    - enable: True  
    - reload: True  
  
mariadb:  
  service.running:  
    - enable: True  
    - reload: True  
  
php-fpm:  
  service.running:  
    - enable: True  
    - reload: True

Speichern Sie die Datei und schließen Sie sie, wenn Sie fertig sind.

Führen Sie als Nächstes den folgenden Befehl aus, um die Details der Statuskonfiguration für das lemp-Projekt anzuzeigen.

sudo salt * state.show_sls lemp

Nachdem der Befehl ausgeführt wurde, sollten Sie die detaillierte Konfiguration wie folgt erhalten.

check salt state

Führen Sie nun den folgenden Befehl aus, um den lemp-Status auf Minion-Servern anzuwenden.

sudo salt '*' state.apply lemp

Sie sollten den generierten Bericht über die automatische Installation sehen. Die Installation der LEMP-Stack-Pakete auf beiden Minion-Servern war in diesem Fall erfolgreich.

apply salt state

Unten sind die Details, wenn die Dienste laufen und aktiviert sind.

each services running

Fazit

Zusammenfassend haben Sie nun Salt auf AlmaLinux 9-Servern Schritt für Schritt installiert. Sie haben sowohl den Salt Master als auch die Minions auf AlmaLinux-Servern installiert und konfiguriert und auch die grundlegende Verwendung von Salt-Statusmodulen gelernt sowie Ihr erstes Salt-Statusprojekt zur Installation des LEMP-Stacks erstellt.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.