需要一个州或另一个州的盐

时间:2015-08-04 10:29:27

标签: automation salt-stack

我正在寻找几个小时的技术来写一个盐状态需要要求1 要求2

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

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

这意味着如果满足安装包 pkg1 的状态或安装 pkg2 的状态,脚本my_script将被执行。

这可以用盐完成吗?如果是这样的话?

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

感谢。

1 个答案:

答案 0 :(得分:1)

Salt状态不支持分支if / else / while /等。状态文件被转换为描述静态依赖关系树的数据。渲染完成后,按顺序执行。

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