如果失败,我如何强制ansible重试'apt'任务?

אור*_*rid 11 ubuntu apt ansible

ansible在很多机器上都有一个剧本.在那本剧本中我有一些我试图安装的软件包apt,但偶尔会失败,要么是因为其他的playbooks正在运行,要么是定期更新,要么是apt并行运行的任何其他实例并抓住锁.

我基本上想在放弃之前添加一个重试循环,但是由于不支持重试而没有这样做apt,显然:我apt moduleansible的文档中查看了页面,甚至试图实际使用它,即使它不存在(显然失败).

无论如何 - 我需要一个关于如何获得ansible重试的想法,让我们说3次,延迟30秒,但仅限于安装包的失败.

Kon*_*rov 13

有通用的任务结果测试,所以你可以使用:

- apt:
    name: build-essential
    state: present
  register: apt_res
  retries: 5
  until: apt_res is success
Run Code Online (Sandbox Code Playgroud)

更新:用于现代语法使用

until: apt_res | success
Run Code Online (Sandbox Code Playgroud)