从 SaltStack 中的 load_yaml 块访问列表变量

Access list variables from load_yaml block in SaltStack

我的状态文件如下。

{% load_yaml as test %}
    value:
      val1: 'string1'
      val2: 'string2'
    value1: ['sub1','sub2']
{% endload %}

当我尝试如下访问 val1 变量时没有问题,但无法访问 value1 列表的值。对此有任何帮助。

access val1 variable:
cmd.run:
  - name: echo {{ test.value.val1 }}

如下访问 value1 会引发错误。

{% set test2 = test.value1 %}

access value1 variable:
cmd.run:
  - name: echo {{ test2 }}

错误为....

   Data failed to compile:
-------
   ID access the value1 variable in SLS is not a dictionary
-------
   ID cmd.run in SLS is not a dictionary

问题似乎出在 cmd.run 状态下的缩进中。这就是错误所抱怨的。

下面的示例可以很好地访问变量,并且当状态为运行时,相应的值显示在输出中。

# Note the indentation below for "cmd.run"
show-val1-variable:
  cmd.run:
    - name: "echo {{ test.value.val1 }}"

{% set test2 = test.value1 %}

show-test2-variable:
  cmd.run:
    - name: "echo {{ test2 }}"