【问题标题】:Saltstack waiting for file appearingSaltstack等待文件出现
【发布时间】:2017-09-30 22:11:52
【问题描述】:

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

【问题讨论】:

  • 我不确定你到底想做什么。是否要在安装完成后才运行命令?还是仅在文件存在时才运行命令?
  • @alexK 此安装会创建一个文件 - 它是任务完成的标记。所以我只想在文件存在时继续。
  • 那么恐怕没有真正的方法不涉及运行某种操作系统命令。也许只是为了使状态更加与平台无关,您可以使用 python 状态提供程序,如图所示 here
  • 感谢您的链接!做一件事的方法有很多:)

标签: powershell salt-stack configurationmanager


【解决方案1】:

不幸的是,在当前版本的 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

丹尼尔

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2018-03-31
      • 1970-01-01
      • 2018-12-09
      相关资源
      最近更新 更多