Saltstack
  • Willkommen
  • Einführung
  • Testumgebung
    • Salt-Master öffentlicher FQDN
  • Salt installieren
    • Minions und Master "verheiraten"
  • Salt Module
    • Beispiel Benutzer anlegen
    • Dateien hin und her kopieren
  • Salt States
    • Yaml verstehen
    • Editoren anpassen
    • Beispiel Benutzer verwalten
    • Abhängigkeiten
    • Dateien editieren
    • Shell Kommandos
    • Beispiel Caddy Webserver
  • Linter
  • Minions adressieren
    • Grains
    • Hostgruppen - Node Groups
  • Jinja
    • Beispiel Caddy PHP
  • top.sls
  • Output
  • Pillars
    • Hosts Pillars
    • GPG
    • Vault
    • Datenbanken
    • Beispiel Benutzerverwaltung
  • Salt-Mine
  • Eigene Module erstellen
  • Orchestrierung
  • Returner & Job-Cache
  • Salt SSH
  • Salt API
  • Salt Cloud
    • Hinweise und Fallen
    • KVM und Libvirt
    • Scaleway
    • Digitalocean
    • Hetzner Cloud
    • eigene Deploymentscripte
    • Dynamische Portforwarding
    • Keys automatisch aufräumen
    • Start Aktionen
  • GIT
    • Alternative CD
  • Salt Reactor
  • Salt für Windows
    • Software ohne Repository installieren
    • PowerShell
    • Chocolatey Paktemanager
    • Lokales Logon Skript
    • Software Repository
  • Beispiele
    • Restic Backup
    • Apache Web-Proxy
    • Wartungstunnel
    • Unattended Upgrades
  • Salt & Etcd
  • Salt ACS
Powered by GitBook
On this page
  • Steht die Verbindung?
  • Was sind Salt-Module?
  • Abstraktionsschicht
  • Weitere Beispiele

Salt Module

ad-hoc auf der Konsole die Minions befehlen

PreviousMinions und Master "verheiraten"NextBeispiel Benutzer anlegen

Last updated 5 months ago

Steht die Verbindung?

Als Erstes testen Sie, ob der Master alle Minions erreichen kann. Dazu geben Sie das Kommando salt '*' test.ping ein. Damit versucht der Salt-Master alle verfügbaren Minions einmal anzupingen.

Was passiert hinter den Kulissen? Sie haben auf der einen Seite ein Salt-Master und auf der anderen Seite mehrere Minion. der Master öffnet den TCP Port 4506. Auf diesem Port lauscht Zero MQ Messing System. An diesem sogenannten Message-Broker melden sich die Minion über eine AES verschlüsselte Verbindung an. Master und Minion kommunizieren über diesen Nachrichtenkanal. Die Minion müssen keine TCP Ports öffnen.

Achten Sie bei der Verwendung des Wildcard-Zeichens * auf die Anführungszeichen, damit das Wildcard-Zeichen nicht von der Shell intepretiert und die Dateiliste im aktuellen aufgelöt wird. 🤦

Was sind Salt-Module?

Salt-Module sind Befehle, welche der Master zu den Minions schickt. Die Minions führen diese Befehle aus. Ein Basisbefehl ist cmd.run gefolgt von einem Befehl, den das angesprochene Betriebssystem versteht. Beispielsweise

salt '*' cmd.run "cat /etc/os-release"

In diesem Beispiel wird cmd.run und das Kommando cat /etc/os-release ausgeführt. Damit melden die Minion an den Master zurück, welches Betriebssystem gerade läuft.

Abstraktionsschicht

Die eingebauten Module von Salt können aber mehr als nur Befehle des Betriebssystems aufrufen. Die Befehle des Betriebssystems werden von Salt eigene Kommandos gekapselt.

Beispiel Pakete installieren

Schauen Sie sich das Modul pkg.upgrade an: Wenn Sie dieses zu einem Minion schicken, der mit Rocky oder RedHat läuft, führt der Minion yum update aus. Ein Minion mit Debian oder Ubuntu hingegen, führt übersetzt pkg.upgrade in die Kommandos apt-get update && apt-get -y upgrade.

Die Salt Module kapseln die unterschiedlichen Kommandos der unterschiedlichen Distributionen und Betriebssysteme in ein einheitliches Set von Befehlen.

Weitere Beispiele

salt '*' pkg.install cowsay -l debug
salt '*' cmd.run "cowsay hallo"
salt '*' file.append /etc/motd \
        "This machine is managed by salt."
salt '*' hosts.add_host 8.8.8.8 google-public-dns-a.google.com
salt '*' status.loadavg
salt '*' status.diskusage / ext? xfs

📖

mehr Status Module
Der Salt Minion übersetzt die "Modul-Sprache" in die Befehle der Distribution
Salt kennt viele Distributionen
Page cover image