Ansible - 在循环中重试失败的迭代
Posted
技术标签:
【中文标题】Ansible - 在循环中重试失败的迭代【英文标题】:Ansible - retry failed iterations in a loop 【发布时间】:2022-01-22 15:43:25 【问题描述】:我有一个需要删除的实体列表,但如果我迭代循环太快,删除可能会失败,因为该操作只能连续完成,并且在删除之间需要大约 10 秒。所以,我正在这样做
- name: Loop through removing all hosts
shell: "echo yes | gravity remove --force item "
loop: " result.stdout_lines "
loop_control:
pause: 12
这通常可以正常工作,但是当 12 秒不够时,我偶尔可能会收到错误消息。我不想增加暂停,所以我想弄清楚如何测试和重试任何失败。
如果单个节点发生故障,则可以进行简单的额外暂停并重试。知道我该怎么做吗?
【问题讨论】:
【参考方案1】:呃!我最初尝试了直到,但愚蠢地忘记了注册 var,所以它不起作用,但现在可以了
- name: Loop through removing all hosts
shell: "echo yes | gravity remove --force item "
register: result
loop: " file_list.stdout_lines "
loop_control:
pause: 12
retries: 2
delay: 12
until: result is not failed
【讨论】:
以上是关于Ansible - 在循环中重试失败的迭代的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Mocha 在 Detox 中重试失败的端到端测试?
Xcode 构建因并发构建失败,将在 Flutter 中重试 2 秒
Ansible 学习总结—— Ansible 循环条件判断触发器处理失败等任务控制使用总结