Ale*_*lex 10 configuration-management salt-stack
我们有两个不同的环境,开发和生产,由一个Salt服务器管理.像这样的东西:
base:
'dev-*':
- users-dev
'prod-*':
- users-prod
Run Code Online (Sandbox Code Playgroud)
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 %}
Run Code Online (Sandbox Code Playgroud)
我们不想复制代码,所以我们最初的想法是做这样的事情:
{% users = pillar['users'].items() %}
include:
- users-common
Run Code Online (Sandbox Code Playgroud)
然后引用usersin users-common,但这不起作用,因为正确的Jinja语法是,set users = pillar['users'].items()并且这不打算跨盐状态包括.
那么,问题是如何正确地做到这一点?
小智 2
所有 jinja 都会在评估任何状态(包括include语句)之前评估。
但是,我认为您可以直接引用 的pillar['users'].items()内部users-common。它不允许您从该州内访问支柱吗?
| 归档时间: |
|
| 查看次数: |
471 次 |
| 最近记录: |