Saltstack 等待文件出现

Saltstack waiting for file appearing

是否可以在 Saltsack 中做同样的事情,但是通过嵌入式功能(没有 powershell 解决方法)?

installation:
cmd.run:
- name: ./installation_script

wait for installation:
cmd.run:
 - name: powershell -command "Start-Sleep 10"
 - unless: powershell -command "Test-Path @('/path/to/file/to/appear')"

不幸的是,在当前版本的 salt 中没有更好的方法来执行此操作。但是在下一版本的 Nitrogen 中,状态中添加了 retry 逻辑。

我在该版本中的做法是。

installation:
  cmd.run:
    - name: ./installation_script

wait for installation:
  cmd.run:
    - name: Test-Path @('/path/to/file/to/appear')
    - retry:
      - attempts: 15
      - interval: 10
      - until: True
    - shell: powershell

这将继续 运行 测试路径,直到它以 0 退出代码(或 powershell 中的任何等效项)退出

https://docs.saltstack.com/en/develop/ref/states/requisites.html#retrying-states

丹尼尔

注意:使用retry时注意缩进,retry key必须有4个空格才能形成salt的字典。否则它将默认为 2 次尝试,间隔为 30 秒。 (2017.7.0.)

wait_for_file:
  file.exists:
    - name: /path/to/file
    - retry:
        attempts: 15
        interval: 30