Ansible,试图找到一种方法来强制任务在当前正在运行的主机上超时

Ansible,试图找到一种方法来强制任务在当前正在运行的主机上超时

关于 Ansible,我希望这应该是相当简单的:

设想:

我有 3 台服务器,红、绿、蓝。

我为 ansible 创建了一个任务,在 linux 中使用 yum 在 playbook 中安装随机包。

在同一剧本中,在 yum 任务下面是另外 2 个随机任务,它们的内容并不重要。

当我运行这个剧本时,yum 任务在红色和绿色服务器上运行得很好,但在蓝色服务器上它会挂起长达 3 分钟然后失败。这很糟糕,因为它“可以”阻止其他游戏/任务,即使我要使用叉子。

我的目标是找到一种方法,强制 ansible 放弃特定任务(如果需要超过“x”秒数才能完成),可以通过关闭 ssh 会话或其他方式,然后希望报告它失败,并且/或任务中的服务器被跳过的原因。

这与 ansible“等待”任务完成不同,在这种情况下我不能这样做,因为任务永远不会完成,和/或只是需要太长时间才能失败。此外,在随后的运行中,它仍然会重复悬挂 10 分钟的行为。因此,我宁愿它要么在超时后失败,要么在超时后跳过任务。 (最好带有自定义消息。)

我在文档和网上浏览过,但找不到我正在寻找的解决方案作为这个问题的答案。有谁知道如何实现这一点? (不,我实际上无法解决根本问题,这会导致我的客户的策略中断,而且我不想仅仅因为这个就将问题服务器排除在运行之外。)

提前致谢!

相关内容