Ich habe einen Zustand unter Verwendung file.managed
, die über eine jinja for-Schleife von einem Schlüssel in der Säule eine Konfigurationsdatei erzeugt.Korndaten einschließlich wenn Säule in saltstack abfragt verwalteten Datei
sieht Meine Säule wie folgt aus:
configuration:
server01:
key1: value1
key2: value2
server02:
key03: value03
key04: value04
und der verwalteten Datei:
{% set kv = pillar['configuration']['server01'] %}
{% for key, value in kv.iteritems() %}
{{ key }}:{ value }};
{% endfor %}
Die Art, wie ich zwischen verschiedenen Servern jetzt in meiner Statusdatei unterscheiden
istconfig:
file.managed:
- name: /etc/config.conf
- source: salt://files/{{ grains['id'] }}.conf.jinja
- template: jinja
aber das ist weniger als ideal, da ich für jeden Server eine fast identische Datei erstellen muss.
Gibt es eine Möglichkeit, um dynamisch server01
mit der ID des aktuellen Server zu ersetzen, so etwas wie
{% set kv = pillar['configuration']['{{ grains[id''] }}'] %}
Das Ziel ist in der Regel die notwendigen Änderungen nur auf die entsprechenden Säule Datei zu begrenzen, wenn das Hinzufügen eines neuen Server Daher sind auch andere Vorschläge willkommen.
perfekt. macht genau das, wonach ich gesucht habe. – savamane