在 Salt 中打开 Jinja2 扩展
Turning on Jinja2 extensions in Salt
我正在编写很多 Salt 状态,我想使用 do tag extension as suggested in this Whosebug answer。
根据 Salt docs,我应该可以编辑 /etc/salt/master
以添加这些行:
jinja_env:
extensions: ['jinja2.ext.do']
jinja_sls_env:
extensions: ['jinja2.ext.do']
然后重启salt-master
服务就可以访问do
标签了。然而,我试过了,我得到了和以前一样的错误,所以它没有识别标签。
我已通过在命令行中进行测试确认该扩展在服务器上可用:
>>> import jinja2
>>> jinja2.Environment(extensions=['jinja2.ext.do']).parse(open('/path/to/mytemplate.jinja').read())
Template(body=[...])
我错过了什么?我如何配置 Salt 以使用 {% do %}
Jinja 标签?
通过查看 Salt source code,它似乎会自动应用这些扩展(如果可用)。我收到的有关模板无法呈现的错误似乎来自不相关的语法错误。
所以一直以来真正的答案是您无需执行任何操作即可使用 {% do %}
模板标签。
我正在编写很多 Salt 状态,我想使用 do tag extension as suggested in this Whosebug answer。
根据 Salt docs,我应该可以编辑 /etc/salt/master
以添加这些行:
jinja_env:
extensions: ['jinja2.ext.do']
jinja_sls_env:
extensions: ['jinja2.ext.do']
然后重启salt-master
服务就可以访问do
标签了。然而,我试过了,我得到了和以前一样的错误,所以它没有识别标签。
我已通过在命令行中进行测试确认该扩展在服务器上可用:
>>> import jinja2
>>> jinja2.Environment(extensions=['jinja2.ext.do']).parse(open('/path/to/mytemplate.jinja').read())
Template(body=[...])
我错过了什么?我如何配置 Salt 以使用 {% do %}
Jinja 标签?
通过查看 Salt source code,它似乎会自动应用这些扩展(如果可用)。我收到的有关模板无法呈现的错误似乎来自不相关的语法错误。
所以一直以来真正的答案是您无需执行任何操作即可使用 {% do %}
模板标签。