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
  • States verwenden
  • States anwenden

Salt States

Systeme in eine definierten Zustand bringen

Sates sind fertige "Rezepte", die Sie in Form von Dateien auf dem Master anlegen. Einzelne oder alle States werden auf Minions ausgerollt und sorgen dafür, dass der Minion einen definierten Zustand erreicht.

States verwenden

Die aktuellen Versionen von Salt verwenden das Verzeichnis /srv/salt als Root-Ordner für States.

Legen Sie das Verzeichnis /srv/salt an und speichern Sie die folgende Datei:

/srv/salt/test.sls
date>/tmp/salt.date:
  cmd.run:
    - runas: root

Starten die den ersten Rollout

salt '*' state.apply test

File-Root ändern

Schützen sie das States Verzeichnis maximal. Wem es gelingt eine Datei im States-Root-Verzeichnis abzulegen, kann die volle Kontrolle über alle Minions übernehmen.

Aus diesem Grund sollte der Salt-Master auf einem dedizierten Host installiert werden, auf dem nur Salt-Administratoren Zugang haben.

States bedürfen keiner speziellen Aktivierung. Die Standard-Installation hat States bereits aktiviert.

Falls Sie müssen nicht das Standard-Verzeichnis verwenden möchten, geben sie dem Salt-Master bekannt geben, in welchem Verzeichnis Sie die State-Definitionen speichern möchten. Dazu erstellen Sie die Datei /etc/salt/master.d/file_roots.conf und tragen folgendes ein:

/etc/salt/master.d/file_roots.conf
file_roots: 
  base:
    - /srv/salt

Legen Sie das Verzeichnis an und starten Sie den Master neu.

mkdir /srv/salt
systemctl restart salt-master

States anwenden

Push: Vom Master zu den Minions

Die in einer State-Datei definierten Zustände werden wie folgt angewenden bzw. ausgerollt:

root@salt-master:~# salt '*' state.apply <STATE>
root@salt-master:~# salt '*' state.apply <DIR>.<STATE>

Die Endung .sls wird nicht mit angegeben. Ordner-Hierarchien werden mit . und nicht mit / angeben. salt '*' state.apply webserver.apache rollt die State-Datei /srv/salt/webserver/apache.sls oder die Datei /srv/salt/webserver/apache/init.sls aus.

🙋 Befindet sich in einem Ordner eine Datei init.sls kann state.apply "auf den Ordner" angewendet werden und init.sls wird als Einstieg verwendet.

Pull: Minions "ziehen" vom Master

Das Ausrollen eines States kann auch vom Minion veranlasst werden.

root@minion:~# salt-call state.apply <STATE>
root@minion:~# salt-call state.apply <DIR>.<STATE>

Gesprächigkeit

Wenn Sie weniger oder mehr Output möchten, verwenden Sie die folgenden Optionen:

root@salt-master:~# salt '*' state.apply <STATE> -l quiet --state-verbose=false
root@salt-master:~# salt '*' state.apply <STATE> --state-output=changes
root@salt-master:~# salt '*' state.apply test --out=table
root@minion:~# salt-call -l debug state.apply <STATE>

Wenn Sie den Fehler in einer SLS-Datei nicht finden können, oder wenn Sie genau sehen möchten, in welche System-Kommandos ein Minion einen State übersetzt, nutzen Sie salt-call -l debug auf einem Minion. An diese Debug-Informationen kommt nur der Minion dran und diese werden nicht zum Master übertragen.

PreviousDateien hin und her kopierenNextYaml verstehen

Last updated 5 months ago

Page cover image