根据SaltStack中的file.managed设置条件cmd.run

时间:2019-03-20 18:02:11

标签: salt-stack

我有一个SaltStack状态文件(sls),其中定义了一个非常简单的状态。

MyStateRule:
  file.managed:
    - source: salt://scripts/rule.ps1
    - name: 'c:\scripts\rule.ps1'
  cmd.run:
    - name: powershell c:\scripts\rule.ps1
    - require:
      - file: MyStateRule

当我运行 state.apply 命令时, cmd.run 似乎每次都执行,这是有道理的。我想要的是仅在需要将托管文件复制到奴才时才运行。在这种情况下可以使用 file.managed 吗?我需要更改什么,以便仅在复制文件时才运行脚本?

1 个答案:

答案 0 :(得分:1)

知道了-使用onchanges而不是使用“ require”:

cmd.run:
  - name: powershell c:\scripts\rule.ps1
  - onchanges:
    - file: MyStateRule