我想要做的是为每个openvpn用户生成多个configuration文件。 我有IP地址和其他configuration的支柱。
例如:
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我想生成configuration取决于用户和该用户的configuration数据存储在支柱。
但是为此,我需要知道状态variables“vpnuser”的内容。
是否有可能将variables从一个状态传递给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中有logging