【发布时间】:2023-04-04 05:21:01
【问题描述】:
我有一个使用案例,其中存在对剧本的依赖。我有一组主机在我的所有机器上启动应用程序,然后是另一组实际机器的主机。
现在我的问题是,只有当第一个 playbook 成功执行并且应用程序启动时,ansible 是否可以运行第二个 playbook(比如说更新包)。我在这里遇到的问题是,虽然第一个不成功并且应用程序没有启动,但第二个剧本仍在运行
在这里,我从有权访问我所有机器的远程机器启动应用程序,并且需要在每台机器上完成更新包。因此,它们是两个相互依赖的不同剧本。
First playbook
hosts: A
tasks:
- name: check if app started and ready
command: x
Second Playbook
hosts: B
tasks:
- name: run y command from B machine to execute on A
command: y
这里的问题是第二个剧本不关心命令 X 是否被执行。一旦第一个剧本完成(无论成功还是失败,第二个剧本都开始了,因为它们属于不同的机器)
【问题讨论】:
-
您是否有机会分享这些剧本以及您如何运行它们,以便为我们提供一个开始调试/工作的地方?
-
@Geoff 我已经更新了这个问题。您对此有任何可能的解决方案吗?
-
下面没有比布鲁斯更好的了。
标签: ansible