我有一个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 吗?我需要更改什么,以便仅在复制文件时才运行脚本?
答案 0 :(得分:1)
知道了-使用onchanges而不是使用“ require”:
cmd.run:
- name: powershell c:\scripts\rule.ps1
- onchanges:
- file: MyStateRule