10

開発環境と本番環境という 2 つの異なる環境があり、単一の 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が、適切な Jinja 構文がset users = pillar['users'].items()あり、Salt 状態が含まれている間で機能することを意図していなかったため、これは機能しませんでした。

それで、問題はそれを適切に行う方法ですか?

4

1 に答える 1

2

すべての jinja は、状態 (includeステートメントを含む) が評価される前に評価されます。

pillar['users'].items()ただし、の内部を直接参照できると思いますusers-common。その状態から柱にアクセスできないのですか?

于 2013-08-21T17:20:00.097 に答える