要求一种状态或另一种状态加盐

Require one state or another state with salt

几个小时以来,我一直在寻找技术人员来编写需要 requirement1requirement2.[=11= 的盐状态]

这就是我想用 cmd.run 做的,例如:

Run myscript:
  cmd.run:
    - name: /path/to/myscript
    - require: 
      - pkgs: pkg1|pkg2
    - cwd: /

这意味着脚本 my_script 将在安装软件包 pkg1 或安装 pkg2 的状态下执行很满意。

这真的可以用盐来做吗?如果有怎么办?

我知道我可以直接在我的脚本中进行所有检查,但我想知道 salt requisites 是否可以巧妙地做到这一点。

谢谢。

Salt 状态不支持分支 if/else/while/ 等。状态文件重新生成描述静态依赖树的数据。渲染完成后,按顺序执行。

进行某种分支的唯一方法是使用 unless/onlyif 关键字。但它们只适用于特定的状态类型,并且 不接受 状态 ID(据我所知,它们只接受可执行的 shell 命令)。参见:http://docs.saltstack.com/en/latest/ref/states/requisites.html#unless