У нас есть две разные среды: dev и production, управляемые одним сервером Salt. Что-то вроде этого:Как избежать повторения себя в состояниях солей?
base:
'dev-*':
- users-dev
'prod-*':
- users-prod
user-dev
и users-prod
состояния в значительной степени то же самое, как это:
{% for user, data in pillar['users-dev'].items() %}
{{ user }}-user:
user.present:
<...something...>
{{ user }}_ssh_auth:
ssh_auth.present:
<...something...>
{% endfor %}
Мы не хотим, чтобы дублировать код, чтобы наша первоначальная идея состояла в том, чтобы сделать что-то вроде этого :
{% users = pillar['users'].items() %}
include:
- users-common
, а затем обратиться к users
в users-common
, но это не сработало клюв ause правильный синтаксис Jinja был set users = pillar['users'].items()
, и это не предназначалось для работы через Солевые состояния.
Итак, вопрос в том, как это сделать правильно?