Saltstack 遍历二级支柱数据

Jos*_*ner 4 python saltstack

我可能遗漏了一些东西,或者这可能只是布局支柱数据的错误方式。

我想遍历第二级支柱数据。

支柱示例:

repo:
     Option1:
        version1:
            display_name: "abcde"
        version2:
            display_name: "fghij"
     Option2:
        version1:
            display_name: "klmn"`
Run Code Online (Sandbox Code Playgroud)

SL:

{% for version, versioninfo in salt['pillar.get']('repo', {}).iteritems() %}
{{ versioninfo[] }}{{ versioninfo[]['display_name'] }}
{% endfor %}`
Run Code Online (Sandbox Code Playgroud)

我想返回每个版本和显示名称,有效地忽略第一级支柱数据。显然上面的jinja不起作用,但是有没有办法做到这一点?

小智 8

您需要两个级别的迭代。.iteritems()返回键和该键的值(项目)。您的第一次迭代将使您能够访问选项名称和版本。您的第二次迭代将为您提供 display_name。

{% for option, versions in salt['pillar.get']('repo', {}).iteritems() %}
  {% for version, info in versions.iteritems() %}
    {{ version }}:{{ info['display_name'] }} 
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

或者你可以这样做:

{% for option, versions in salt['pillar.get']('repo', {}).iteritems() %}
  {% for version in versions %}
    {{ version }}:{{ versions[version]['display_name'] }} 
  {% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)