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.applytest
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.
States anwenden
Push: Vom Master zu den Minions
Die in einer State-Datei definierten Zustände werden wie folgt angewenden bzw. ausgerollt:
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.
Gesprächigkeit
Wenn Sie weniger oder mehr Output möchten, verwenden Sie die folgenden Optionen:
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.