Chúng tôi có hai môi trường, dev và sản xuất khác nhau, được quản lý bởi một máy chủ Salt đơn lẻ. Something như thế này:Làm cách nào để tránh lặp lại chính mình ở các tiểu bang Salt?
base:
'dev-*':
- users-dev
'prod-*':
- users-prod
user-dev
và users-prod
bang được khá nhiều giống nhau, như thế này:
{% for user, data in pillar['users-dev'].items() %}
{{ user }}-user:
user.present:
<...something...>
{{ user }}_ssh_auth:
ssh_auth.present:
<...something...>
{% endfor %}
Chúng tôi không muốn lặp lại mã nên ý tưởng ban đầu của chúng tôi là để làm một cái gì đó như thế này :
{% users = pillar['users'].items() %}
include:
- users-common
và sau đó tham khảo users
trong users-common
, nhưng điều này không hoạt động sử dụng cú pháp Jinja thích hợp là set users = pillar['users'].items()
và điều này không có ý định làm việc trên các tiểu bang Salt bao gồm.
Vì vậy, câu hỏi đặt ra là làm thế nào để làm điều đó đúng cách?