Her*_*erg 9 template saltstack
我想做的是为每个 openvpn 用户生成多个配置文件。我在支柱中有 IP 地址和其他配置。
例如:
openvpn:
- user1:
ip: 1.2.3.4
config:
- line1
- line2
Run Code Online (Sandbox Code Playgroud)
在 SLS 中,我想做一些类似的事情:
{% for vpnuser in salt['pillar.get']('openvpn') %}
/etc/openvpn/ccd/{{ vpnuser }}:
file.managed:
- template: jinja
- source: salt://openvpn/ccdtemplate
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
在 ccdtemplate 中,我想根据用户和存储在柱子中的该用户的配置数据生成配置。
但是因此我需要从状态中知道变量“vpnuser”的内容。
是否可以将变量从状态传递到 jinja 模板?
Chr*_*uet 10
您可以使用defaults关键字将您需要的任何值传递给模板。在您的情况下,这将是:
{% for vpnuser in salt['pillar.get']('openvpn') %}
/etc/openvpn/ccd/{{ vpnuser }}:
file.managed:
- template: jinja
- source: salt://openvpn/ccdtemplate
- defaults:
vpnuser: {{ vpnuser }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这记录在http://docs.saltstack.com/en/latest/ref/states/all/salt.states.file.html
| 归档时间: |
|
| 查看次数: |
12932 次 |
| 最近记录: |