Page cover

Pillars

flexibler Datenspeicher

Pillars sind flexible Key-Value-Datenspeicher. Diese bieten die Möglichkeit, Konfigurationen aus Text-Dateien auszulagern. Der gesamte Pillar-Store wird von Jinja geladen, so dass auf alle Schlüssel zugegriffen werden kann.

States werden komplett zum Minion kopiert und dort von Jinja verarbeitet. Im folgenden Beispiel werden Passwörter für API-Calls definiert. Jeder Minion verwendet sein eigenes Passwort. Da die Verarbeitung aber auf dem Minion erfolgt, kann jeder Minion alle Passwörter auslesen.

/srv/salt/examples/passwords.sls
{% set apache = salt['grains.filter_by']({
    'minion1': {'user': 'foo', 'password': 'geheim'},
    'minion2': {'user': 'foo2', 'password': 'sagichnicht'},
}, grain:'id') %}

Pillars are tree-like structures of data defined on the Salt Master and passed through to minions. They allow confidential, targeted data to be securely sent only to the relevant minion.

Pillars aktivieren

Pillars sind bereits aktiviert und der Salt-Master liest diese aus dem Verzeichnis /srv/pillar Möchten Sie stattdessen eine anderes Verzeichnis angeben, können Sie in der Master-Konfiguration die Einstellungen ändern.

/etc/salt/master.d/pillar.conf
pillar_roots:
  base:
    - /srv/pillar

Ähnlich wie bei den State-Files müssen Sie eine Datei top.sls anlegen, die weitere Dateien inkludiert.

/srv/pillar/top.sls
base:
  '*':
    - static
    - dynamic
Pillars auslesen

Prüfen Sie auf einem Minion, ob das Pillar zur Verfügung steht.

Oder prüfen Sie vom Master, welche Pillars einem Minion zugewiesen wurden.

Pillars in Sates verwenden

Es gibt drei verschiedene Möglichkeiten per Jinja auf Pillar zuzugreifen.

Pillars können als Variablen in allen State-Files verwendet werden. Beispiel:

Pillars in Dateien speichern

Pillars on-the-fly setzen

Pillars können On-the-fly vom salt oder salt-call Kommando gesetzt oder überschrieben werden:

Pillars auf Existenz prüfen

Pillars und Zeilenumbrüche

Pillar-Werte können Zeilenumbrüche enthalten. Verwenden Sie das Pipe-Zeichen bei der Zuweisung. Siehe Beispiel:

Wenn Sie diesen Pillar mit Jinja verwenden, werden die Zeilenumbrüche entfernt. Wenn die Zeilenumbrüche erhalten bleiben sollen, verwenden Sie den |yaml Filter. Siehe Zeile 4 im nachfolgenden Beispiel.

Last updated