Pillar-Root festlegen
Legen Sie in der Master-Konfiguration /etc/salt/master
das Root-Verzeichnis für die Pillars fest:
pillar_roots:
base:
- /srv/pillar
Ähnlich wie bei den State-Files müssen Sie eine Datei top.sls
anlegen, die weitere Dateien inkludiert. Beispiel:
base:
'*':
- static
- dynamic
Achtung! Das Pillar-Root darf nicht unterhalb von File-Root liegen.
Beispiel
{% if grains['osfinger'] == 'Ubuntu-17.10' %}
php:
version: 7.2
{% else %}
php:
version: 7.0
{% endif %}
Prüfen Sie auf einem Minion, ob das Pillar zur Verfügung steht.
salt-call pillar.items
php:
----------
version:
7.2
Oder prüfen Sie vom Master, welche Pillars einem Minion zugewiesen wurden.
salt <MINION-ID> pillar.items
Pillars in Sates verwenden
Pillars können als Variablen in allen State-Files verwendet werden. Beispiel:
#
# Install php7 on any Ubuntu
#
php7:
pkg.installed:
- pkgs:
- php-gd
- php-ldap
- php-mysql
- php-pear
- php{{ pillar['php']['version'] }}-bcmath
- php{{ pillar['php']['version'] }}-cli
- php{{ pillar['php']['version'] }}-common
- php{{ pillar['php']['version'] }}-gd
- php{{ pillar['php']['version'] }}-imap
- php{{ pillar['php']['version'] }}-json
- php{{ pillar['php']['version'] }}-mbstring
- php{{ pillar['php']['version'] }}-mysql
- php{{ pillar['php']['version'] }}-opcache
- php{{ pillar['php']['version'] }}-readline
- php{{ pillar['php']['version'] }}-xml
- php{{ pillar['php']['version'] }}-curl
Pillars in Dateien speichern
/tmp/pillar-test:
file.managed:
- contents: {{ pillar['pass']['zugang'] }}
- user: nobody
- mode: 644
Pillar-Werte dürfen keine Umlaute oder Sonderzeichen enthalten. Wenn Sie Sonderzeichen speichern müssen, z.B. um Zugangsdaten zu speichern, müssen Sie diese base64 encoden.
echo Zugängle| base64>zugang
/tmp/klartext:
file.decode:
- encoding_type: base64
- contents_pillar: pass:zugang
Pillars on-the-fly setzen
Pillars können On-the-fly vom salt
oder salt-call
Kommando gesetzt oder überschrieben werden:
salt '*' pillar.items pillar='{"server.lib_version": "2.0"}'
salt-call pillar.items pillar='{"server.lib_version": "2.0"}'