首页 > 解决方案 > 在 Ansible 中执行另一个命令之前,如何编写一个需要 15 分钟才能运行的 bash 命令?

问题描述

我正在尝试通过 Ansible 为服务器更新某些软件的版本。

    - name: upgrade firmware version
      shell: bash -x bmc_firmware_update.sh -k -F BMC_0204.00.bin_enc -s 1 

这可能需要大约 15 分钟才能运行。在那之后我还有另一个命令要运行,即

    -name: something else
     shell: bash -x bmc_firmware_update.sh -k -F BMC_0204.00.bin_enc -s 2. 

我遇到了 wait_for: timeout=300 但我想知道是否有更好的方法来确保在第二个 shell 命令运行之前成功完成第一个。请指教!

标签: bashshellansible

解决方案


@sorin 这是 Ansible 相关的!

@op; 您可以附加到firmware_update.sh脚本,完成后,它将某个值写入特定路径。然后让 Ansible 检查该文件以及该值是否存在。如果是,继续,如果不是,重试。

另一种可能性是在 bash 脚本本身中编写逻辑。


推荐阅读