等待文件出现的Saltstack

时间:2017-05-03 07:36:06

标签: powershell salt-stack configurationmanager

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

2 个答案:

答案 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