Salt 文档充满了这种模式:
apache:
pkg:
- installed
service:
- running
- require:
- pkg: apache
这种重复("安装 apache,现在检查是否安装了 apache")似乎违反了不要重复自己 (DRY)。那么有必要吗?
从"了解状态排序":
为了完成类似于经典命令式系统功能的方式,可以省略所有必要条件,然后在主配置中将 failhard 选项设置为 True,这将在故障的第一个实例停止所有状态运行。
这似乎意味着在任何地方使用必要条件实际上是可选的(假设声明顺序是正确的)——但我想知道。
它是 0.15 天之前状态未自上而下执行的残余。
现在订购就足够了。
状态现在按照它们在 sls 文件中声明的顺序执行。你仍然想要使用"require"的地方是,如果你想确保某个状态在另一个状态之前成功执行。
例如,您可能希望在尝试放置配置文件之前确保正确安装软件包。
apache:
pkg:
- installed
file:
- managed
- name: /etc/apache/httpd.conf
- source: salt://apache/httpd.conf
- require:
- pkg: apache
如果没有上面示例中的"require",即使 apache pkg 安装失败,配置文件也会被放下。