Привет, сообщество 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 }}