首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过SaltStack中的另一个SLS文件向SLS文件传递参数?

如何通过SaltStack中的另一个SLS文件向SLS文件传递参数?
EN

Stack Overflow用户
提问于 2020-10-19 07:32:07
回答 1查看 551关注 0票数 3

我在SaltStack Orchestrator中有一个SLS文件,其中包含如下内容:

代码语言:javascript
复制
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文件中,我有这样的内容:

代码语言:javascript
复制
{% 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文件来解决它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-19 12:27:44

在orchestrator文件中,只需添加pillar参数:

代码语言:javascript
复制
Plan B:
  salt.state:
    - tgt: my-server
    - sls: service-a
    - pillar:
        version: old
    - onfail:
      - Plan A

只有在州Plan B中,version支柱的价值将是old

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64422917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档