【发布时间】:2022-08-03 18:19:15
【问题描述】:
我想将多个现有的盐状态组合成一个新的状态,它们需要以特定的顺序执行。
SaltStack documentation 解释说可以包含盐状态。 据我了解,包含的状态将在 sls 文件的其余部分之前运行。 例子:
include:
- config-pulled
- service-restarted
使用此示例,我希望 service-restarted 在 config-pulled 之后执行,并且仅在 config-pulled 成功时执行。
但不保证多个包含状态的执行顺序。文档说:
... If you need to guarantee order of execution, consider using requisites.
我可以想象直接在 include 上使用 requisities。例如:
include:
- config-pulled
- service-restarted:
require:
- config-pulled
但这不起作用。
问题
- 在包含状态时如何使用必需项?
- 我必须改用orchestrate script 吗?
-
这似乎相关,但我不明白解决方案是什么:github.com/saltstack/salt/issues/11893
-
有没有办法在不执行状态的情况下导入状态?然后可以使用
require使所有状态可用并定义它们的执行顺序 -
嗯,再想一想,我不想对 sls 文件中的状态名称做出假设。 sls 文件应被视为“黑匣子”。因此,使用 require 从 sls 文件中对导入的状态进行排序并不是最优的,因为必须对 sls 文件中使用的 id 做出假设。
-
我现在正在使用编排脚本。我没有找到解决此问题的其他方法。
标签: salt-stack