如何在salt中将字典作为函数参数传递

can*_*eel 3 dictionary yaml salt-stack

我需要使用

pip.installed
Run Code Online (Sandbox Code Playgroud)

在盐中起作用并传递参数

env_vars
Run Code Online (Sandbox Code Playgroud)

具有多个参数,这些参数最终应呈现为python字典。可以有一个参数,并且该参数期望的是字典以外类型的参数,那么我可以像这样传递它:

pip.installed:
  - env_vars: my_var
Run Code Online (Sandbox Code Playgroud)

但是我需要通过一个命令,我不确定该怎么做。

应该是这样的构造:

pip.installed:
  - env_vars:
    - my_var1: var_value
    - my_var2: var_value2
Run Code Online (Sandbox Code Playgroud)

我应该如何检查我的配置是否真正呈现为正确的形式?

小智 6

该答案不正确,Salt将发出警告。

pip.installed:
  - env_vars:
    my_var1: var_value
    my_var2: var_value2

Warnings: 'my_var2' and 'my_var1' are invalid keyword arguments for
          'pip.installed'. If you were trying to pass additional data to be
          used in a template context, please populate 'context' with 'key:
          value' pairs. Your approach will work until Salt Carbon is out.
          Please update your state files.
Run Code Online (Sandbox Code Playgroud)

变量需要像这样嵌套另一个层次:

pip.installed:
  - env_vars:
      my_var1: var_value
      my_var2: var_value2
Run Code Online (Sandbox Code Playgroud)