从 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 }}"
我的状态文件如下。
{% 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 }}"