Я создал сложное состояние для службы API, он включает в себя git checkouts, python venv, uwsgi, nginx и т. Д. И т. Д. Он отлично работает.SaltStack: как я могу повторить другие состояния с контекстом?
Теперь я хотел бы превратить его в шаблон и выполнить его несколько раз на миньон, с переменными, поставляемыми из столба - например, что-то типа.
{% for apiserver in pillar.apiservers %}
include apiserver_template.sls, locals: apiserver.config
{% endfor %}
, где apiserver_template будет работать с контекстом, подаваемого на него, при apiserver.config, имеющие все конфигурационные данные для каждого экземпляра API. Я знаю, что синтаксис неверен, но, надеюсь, я общаюсь с идеей - в идеале, что-то вроде выполнения частичных рубинов с поставкой локальных переменных.
Как это делается правильно в соленой?
Спасибо, я сделал что-то очень похожее самостоятельно, единственное, что некоторое время заставляло меня озадачиваться в том, что внутри состояния шаблона я отобразил некоторые файлы шаблонов, и для них передаются переменные /opt/{{apisite ['sitename']}}/api - {{apisite ['sitename']}}. ini: file.managed: - источник: соль: //files/api.ini - шаблон: jinja - контекст: sitename: {{apisite ['sitename']}} apiport: {{apisite ['apiport'}}} Это довольно уродливое imo – DeeY