Назад | Перейти на главную страницу

SaltStack - создание базы значений столбца на основе того, в какой папке он выполняется

Привет, сообщество ServerFault,

Я пытаюсь изучить SaltStack и столкнулся с проблемой. У меня есть файл свойств (propertyfile.properties), значения которого заполняются соляной колонной. Теперь этот файл свойств существует в нескольких каталогах. Проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы значения файла свойств заполнялись / отображались с помощью функции salt pillar.get в зависимости от того, в каком каталоге он сейчас находится. Чтобы дать вам больше представления, давайте рассмотрим этот пример:

propertyfile.property (in directory 1)
name={{ salt['pillar.get']['dir1.name'] }}


propertyfile.property (in directory 2)
name={{ salt['pillar.get']['dir2.name'] }}

#pillar
dir1.name=dir1
dir2.name=dir2

обратите внимание, что файл свойств только один и создается с помощью соли для нескольких каталогов с помощью цикла, подобного этому:

{% for dir in 'dir1', 'dir2' %}
propertyfile_properties_{{ dir }}:
    file.managed:
        - name: /home/devuser/{{ dir }}/propertyfile.properties
        - source: {{ propertyfile_source }}
        - source_hash: {{ propertyfile_source }}.MD5
        - template: jinja
        - show_diff: True
        - makedirs: True
{% endfor %}

Любые идеи? Ваша помощь очень ценится. Спасибо

Похоже, тебе нужно как /home/devuser/{{ dir }}/ в propertyfile_properties_{{ dir }} файл? Вы всегда можете добавить контекст к состоянию для передачи переменных в jinja

Так что это может выглядеть примерно так

{% for dir in 'dir1', 'dir2' %}
propertyfile_properties_{{ dir }}:
    file.managed:
        - name: /home/devuser/{{ dir }}/propertyfile.properties
        - source: {{ propertyfile_source }}
        - source_hash: {{ propertyfile_source }}.MD5
        - template: jinja
        - show_diff: True
        - makedirs: True
        - context
          file_dir: /home/devuser/{{ dir }}/
{% endfor %}

Итак, в шаблоне вы сможете использовать {{ file_dir }}