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"}'

results matching ""

    No results matching ""