Salt Jinja语法错误:没有名为'yaml_encode'的过滤器

时间:2015-03-18 15:23:36

标签: yaml salt-stack jinja2

运行salt '*' state.highstate时,我的SLS文件无法呈现,并显示以下消息:

    Data failed to compile:
----------
    Rendering SLS 'base:files' failed: Jinja syntax error: no filter named 'yaml_encode'; line 6

---
{% for folder, options in salt['pillar.get']('dirs', {}).items() %}
{{ folder }}:
{%- load_yaml as foo %}
  file.directory:
    {% for key, val in options.items() %}
    - {{ key }}: {{ val|yaml_encode }}    <======================
    {% endfor %}
    - order: 1
{%- endload %}
{% endfor %}
---

The docs显示此过滤器只是在您想要转义YAML的地方使用,所以我不知道为什么没有定义过滤器。

所有minions和master都在运行Ubuntu Server 14.04,并从Launchpad PPA

运行Salt 2014.7.1

1 个答案:

答案 0 :(得分:1)

虽然过滤器已记录在案,但由于文档是从当前的开发分支生成的,而不是最新的稳定分支,因此会产生误导。

The docs for older versions are available from readthedocs.org.

The pull request that introduced this feature尚未得到&#34;合并回#34;进入2014.7。