【问题标题】:Access list variables from load_yaml block in SaltStack从 SaltStack 中的 load_yaml 块访问列表变量
【发布时间】:2021-03-19 12:19:09
【问题描述】:

我的状态文件如下。

{% 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

【问题讨论】:

    标签: jinja2 salt-stack


    【解决方案1】:

    问题似乎在于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 }}"
    

    【讨论】:

    • 谢谢!!我怎么错过了这么点小东西……
    • 欢迎。很高兴它有帮助!
    猜你喜欢
    • 2015-05-24
    • 2020-03-28
    • 2010-11-29
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多