是否可以在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')"
答案 0 :(得分:6)
不幸的是,在当前版本的salt中没有更好的方法。但是在下一个版本的氮气中,有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
这将继续运行Test-Path,直到它以0退出代码退出(或者PowerShell中的等效代码)
https://docs.saltstack.com/en/develop/ref/states/requisites.html#retrying-states
丹尼尔
答案 1 :(得分:0)
注意:使用重试时,请注意缩进,它必须与重试键之间有4个空格,才能形成盐的字典。否则,它将默认为两次尝试,间隔30秒。 (2017.7.0。)
wait_for_file:
file.exists:
- name: /path/to/file
- retry:
attempts: 15
interval: 30