将 salt 模块转换为 jinja
Convert a salt module into jinja
我在 jinja 模板中获取简单的 saltstack 模块 运行 时遇到了一些麻烦。
# salt-ssh -i 'myhost' lowpkg.info postfix attr=version
--> 工作正常
我认为它可以这样工作:
{%- set postfixversion = salt['lowpkg.info']('postfix,attr=version') %}
path to version = /folder/{{ postfixversion }}/subfolder`
经过一些变化('postfix),(attr=version')
或 ('postfix)(attr=version')
或 ...
我总是得到错误:
Comment: Traceback (most recent call last):
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 167, in render_tmpl
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 445, in render_jinja_tmpl
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 244, in _get_jinja_error
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 227, in _get_jinja_error_line
TypeError: 'NoneType' object has no attribute '__getitem__'
我对 saltstack、jinja 和 python 很陌生,所以我 运行 没有想法,在文档中我无法找到适合这种情况的示例。
你只需要像这样将它作为两个参数传递:
{%- set postfixversion = salt['lowpkg.info']('postfix',attr='version') %}
这将 return 字典:
{'postfix': {'version': '3.0.5'}}
为了直接获取版本,您需要过滤输出
{%- set postfixversion = salt['lowpkg.info']('postfix',attr='version')['postfix']['version'] %}
然后创建一个包含路径作为值的新变量:
{% set path_to_version = '/folder/' + postfixversion + '/subfolder' %}
我在 jinja 模板中获取简单的 saltstack 模块 运行 时遇到了一些麻烦。
# salt-ssh -i 'myhost' lowpkg.info postfix attr=version
--> 工作正常
我认为它可以这样工作:
{%- set postfixversion = salt['lowpkg.info']('postfix,attr=version') %}
path to version = /folder/{{ postfixversion }}/subfolder`
经过一些变化('postfix),(attr=version')
或 ('postfix)(attr=version')
或 ...
我总是得到错误:
Comment: Traceback (most recent call last):
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 167, in render_tmpl
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 445, in render_jinja_tmpl
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 244, in _get_jinja_error
File "/var/tmp/.root_98377f_salt/py2/salt/utils/templates.py", line 227, in _get_jinja_error_line
TypeError: 'NoneType' object has no attribute '__getitem__'
我对 saltstack、jinja 和 python 很陌生,所以我 运行 没有想法,在文档中我无法找到适合这种情况的示例。
你只需要像这样将它作为两个参数传递:
{%- set postfixversion = salt['lowpkg.info']('postfix',attr='version') %}
这将 return 字典:
{'postfix': {'version': '3.0.5'}}
为了直接获取版本,您需要过滤输出
{%- set postfixversion = salt['lowpkg.info']('postfix',attr='version')['postfix']['version'] %}
然后创建一个包含路径作为值的新变量:
{% set path_to_version = '/folder/' + postfixversion + '/subfolder' %}