我在SaltStack Orchestrator中有一个SLS文件,其中包含类似以下内容的内容:
Plan A:
salt.state:
- tgt: my-server
- sls: service-a
Plan B:
salt.state:
- tgt: my-server
- sls: service-a
- onfail:
- Plan A
在service-a
的SLS文件中,我有以下内容:
{% set image = pillar["image"] | default("service-api") %}
{% set version = pillar["version"] %}
Deploy A:
cmd.run:
- name: docker-compose -f {{version}}/docker-compose.yml up
..... (+ many lines of other commands and codes)
现在的问题是,当Plan A
失败时,应该执行回滚操作Plan B
,但实际上还是执行相同的操作,因为我没有在service-a
SLS文件中更改version
变量。 我想通过编排文件 Orchestrator 来更改 service-a
SLS 文件中的 version
变量。例如,在进入 Plan B
时,将其更改为 old 。
我知道它可以通过Python模块来处理,但尽可能想通过SLS文件解决它。