私がしたいのは、openvpnユーザーごとに複数の構成ファイルを生成することです。柱にIPアドレスと追加設定があります。
例えば:
openvpn:
- user1:
ip: 1.2.3.4
config:
- line1
- line2
SLSで私は次のようなことをしたいと思います:
{% for vpnuser in salt['pillar.get']('openvpn') %}
/etc/openvpn/ccd/{{ vpnuser }}:
file.managed:
- template: jinja
- source: salt://openvpn/ccdtemplate
{% endfor %}
そして、ccdtemplateで、ユーザーに応じて構成を生成し、このユーザーの構成データをpillarに格納します。
しかし、そのためには、状態から変数「vpnuser」の内容を知る必要があります。
状態からjinjaテンプレートに変数を渡すことは可能ですか?
defaults
キーワードを使用して、必要な値をテンプレートに渡すことができます。あなたの場合、これは次のようになります:
{% for vpnuser in salt['pillar.get']('openvpn') %}
/etc/openvpn/ccd/{{ vpnuser }}:
file.managed:
- template: jinja
- source: salt://openvpn/ccdtemplate
- defaults:
vpnuser: {{ vpnuser }}
{% endfor %}
これは http://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html に文書化されています