Deployment 是否需要必需品,或者订单是否足够?
Salt文档中充满了这种模式:Deployment 是否需要必需品,或者订单是否足够?,deployment,requirements,configuration-management,salt-stack,Deployment,Requirements,Configuration Management,Salt Stack,Salt文档中充满了这种模式: apache: pkg: - installed service: - running - require: - pkg: apache 这种重复(“安装apache,现在检查是否安装了apache”)似乎违反了don-don-repeat-yourself(DRY)。那么有必要吗 从“”: 为了实现类似于经典命令式系统的功能,可以省略所有必要条件,然后在主配置中将failhard选项设置为True,这将在第一次出现故
apache:
pkg:
- installed
service:
- running
- require:
- pkg: apache
这种重复(“安装apache,现在检查是否安装了apache”)似乎违反了don-don-repeat-yourself(DRY)。那么有必要吗
从“”:
为了实现类似于经典命令式系统的功能,可以省略所有必要条件,然后在主配置中将failhard选项设置为True,这将在第一次出现故障时停止所有状态运行
这似乎意味着到处使用requisites实际上是可选的(假设声明顺序是正确的)——但我想确定一下 这是0.15年前的遗留问题,当时各州没有自上而下地执行
现在订购就足够了。这是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安装失败,配置文件也会被放下。状态现在按照在sls文件中声明的顺序执行。如果您希望确保某个状态在另一个状态之前成功执行,则仍然需要使用“require” 例如,您可能希望在尝试放置配置文件之前确保软件包已正确安装
apache:
pkg:
- installed
file:
- managed
- name: /etc/apache/httpd.conf
- source: salt://apache/httpd.conf
- require:
- pkg: apache
在上面的示例中,如果没有“require”,即使apache pkg安装失败,配置文件也会被放置。因此,在所有这些情况下,顺序是否都受到尊重:顶部文件中的公式、公式中的语句和语句中的函数?您可以在此处阅读:。从历史上看,状态过去是按sls文件的字典顺序排列的,现在不是了。没有其他系统有或有令人惊讶的执行命令。谢谢。奇怪的是,有两个不同的关于状态排序的文档页面(见我链接的那一个)。直到你指出它,我才明白。我将提交一个bug。谢谢。那么,在所有这些情况下,排序都受到尊重吗:顶部文件中的公式、公式中的语句和语句中的函数?您可以在此处阅读:。从历史上看,状态过去是按sls文件的字典顺序排列的,现在不是了。没有其他系统有或有令人惊讶的执行命令。谢谢。奇怪的是,有两个不同的关于状态排序的文档页面(见我链接的那一个)。直到你指出它,我才明白。我将提交一个bug。谢谢。为了发表一点社论,我觉得这个例子很愚蠢,就是为什么你甚至需要“pkg:-已安装”位。salt不能将“require-pkg:apache”解释为“必须安装此软件包,如果它还没有安装,那么现在就安装它”。此外,我知道failhard不是默认设置,但在实践中,对我来说,失败后继续几乎没有意义。我需要把整个盒子完美地安装好——失败是没有好处的。也许它在开发过程中是有用的。为了编辑一点,我觉得这个例子很愚蠢,就是为什么你甚至需要“pkg:-installed”位。salt不能将“require-pkg:apache”解释为“必须安装此软件包,如果它还没有安装,那么现在就安装它”。此外,我知道failhard不是默认设置,但在实践中,对我来说,失败后继续几乎没有意义。我需要把整个盒子完美地安装好——失败是没有好处的。也许它在开发过程中有用。