我在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文件中更改service-a变量。例如,当它进入Plan B时,它应该将version更改为old。我所知道的唯一方法是它可以由Python模块来处理,但尽可能地我想通过SLS文件来解决它。
发布于 2020-10-19 12:27:44
在orchestrator文件中,只需添加pillar参数:
Plan B:
salt.state:
- tgt: my-server
- sls: service-a
- pillar:
version: old
- onfail:
- Plan A只有在州Plan B中,version支柱的价值将是old。
https://stackoverflow.com/questions/64422917
复制相似问题