Saltstack 状态定义中空括号的用途?

Purpose of empty brackets in Saltstack state definitions?

SaltStack 状态定义后的空括号有什么用?

例如,somewhere in SaltStack documentation您会看到:

vim:
  pkg.installed: []

然而强制执行,例如vim安装也可以这样表达:

vim:
  pkg.installed

.. 事实上,elsewhere in SaltStack documentation 是流行的格式。那么空括号是什么意思呢?明确说明该语句没有其他参数?

对您的问题的简短回答是:是的。他们只是明确声明 pkg.installed.

没有附加参数

长答案: Salt .sls 格式基本上是一个顶部带有 Jinja 模板的 YAML。这意味着配置中的每个项目都是一个序列或一个集合。在您的示例中 pkg.installed 有许多可选参数,可以作为一系列集合提供(将其视为其他编程语言中的字典数组)。例如,您可以像这样修复 vim 版本:

vim:
  pkg.installed:
    - version: 1.0

YAML 允许使用两种语法来记录序列和集合。上面描述的也可以写成:

vim:
  pkg.installed: [{version: 1.0}]

在您的示例中,pkg.installed 没有提供任何附加参数,并且用空方括号明确显示。