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
是否可以在 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