【发布时间】:2017-11-29 09:45:42
【问题描述】:
我有一个在许多机器上运行的ansible 剧本。在该剧本中,我尝试使用apt 安装一些软件包,但有时它们会失败,因为其他剧本正在运行、定期更新或任何其他apt 实例并行运行并获取锁。
我基本上想在放弃之前添加一个重试循环,但没有这样做,因为apt 不支持重试,显然:我查看了ansible's documentation 中的apt module 页面,甚至尝试实际使用即使它不存在(显然失败了)。
无论如何 - 我需要一个关于如何让 ansible 重试的想法,比如说 3 次,延迟 30 秒,但仅限于安装包失败。
【问题讨论】:
-
添加数据:我找到了一种在 apt 上进行重试和延迟的方法(缩进中缺少 2 个空格),但仍然缺少如何知道 apt 成功的部分。我认为检查 rc 是否为 0 就足够了,但事实并非如此。我可以依靠 stderr 为空吗?