Abhängigkeiten

Sates in Verbindung setzen

Grundsätzlich werden die States in der Reihenfolge "abgearbeitet", in der diese in der sls-Datei auftauchen.

By default, each ID in a Salt state file is executed in the order it appears in the file.

Zwei Varianten - ein Ziel

apache2_package:
  pkg.installed:
    - name: apache2
apache2_service:
  service.running:
    - name: apache2
    - require:
      - pkg: apache2_package
apache2_package:
  pkg.installed:
    - name: apache2
    - require_in:
      - service: apache2_service

apache2_service:
  service.running:
    - name: apache2

Abhängigkeiten können in zwei Schreibweisen angegeben werden. Langversion: - pkg: apache2_package - <MODUL_TYPE>:<SATE-ID> oder Kurzversion - apache2_package - <STATE-ID>

Als weitere Möglichkeit Abhängigkeiten zu definieren, ist der Parameter - failhard: true, den Sie jedem Sate "mitgeben" können. Sie Verarbeitung der State-Datei bricht sofort ab, und nachfolgende States werden nicht mehr ausgeführt. Beispiel:

apache2_package: pkg.installed: - name: apache2 - failhard: true

Globales Failhard

Es kann erwünscht sein, dass failhard auf jeden State angewendet wird, der ausgeführt wird; in diesem Fall kann failhard in der Master-Konfigurationsdatei eingestellt werden. Die Einstellung von failhard in der Master-Konfigurationsdatei hat zur Folge, dass ein Abbruch ausgelöst wird, wenn ein beliebiger Minion, in einem beliebigen State einen Fail-Status aufweist.

Dies ist NICHT das Standardverhalten!

Die Verwendung des globalen failhard wird im Allgemeinen nicht empfohlen, da dies dazu führen kann, dass States nicht ausgeführt werden. Es kann auch verwirrend sein, wenn ein Administrator nicht aktiv weiß, dass die Failhard-Einstellung gesetzt wurde.

Um die globale Failhard zu verwenden, setzen Sie failhard per Konfigurationsdatei auf True.

/etc/salt/master.d/failhard.conf
failhard: true

Lesen Sie mehr in der offiziellen Salt Dokumentation.

Beispiel Benutzerverwaltung

Eine verbesserte Version der Benutzerverwaltung.

  • Der SSH-Key wird nur dann ausgerollt, wenn der User erfolgreich angelegt wurde.

  • Die Sudo-Datei wird nur dann angelegt, wenn die States mit den IDs sudo und thorsten erfolgreich angewendet wurden.

/srv/salt/users/thorsten.sls
#
# Deploy the public SSH Key of the user
#
thorstens-key:
  ssh_auth.present:
    - user: thorsten
    - source: salt://users/ssh_keys/thorsten.id_rsa.pub
    - require:
      - user: thorsten

#
# Make sure the user can use sudo without a password
#
sudo:
  pkg.installed: []

/etc/sudoers.d/thorsten:
  file.managed:
    - contents: thorsten ALL=(ALL) NOPASSWD:ALL
    - require:
      - pkg: sudo
      - user: thorsten

Last updated