我们有两个不同的环境,开发和生产,由单个 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
in users-common
,但这不起作用,因为正确的 Jinja 语法是set users = pillar['users'].items()
并且这不打算在 Salt 状态包括。
那么,问题是如何正确地做到这一点?