如何运行非常长的 ansible 任务?

如何运行非常长的 ansible 任务?

我有以下 ansible 角色任务:“任务 1”、“任务 2”、“任务 2.1”、“任务 2.2”、“任务 3”

我需要运行它们,但所有这些任务都需要大量时间才能完成(从 1 小时到 12 小时),并且它们必须按照特殊的排序顺序进行(我的意思是“任务 2.1”必须在“任务 2”之后启动,依此类推)

我怎样才能做到这一点?

答案1

对于长时间运行的任务,使用 Ansible 的异步模式可以有效地将任务置于后台。

- name: 'YUM - fire and forget task'
  yum: name=docker-io state=installed
  async: 1000
  poll: 0
  register: yum_sleeper

然后执行另一项检查后台任务状态的任务。

- name: 'YUM - check on fire and forget task'
  async_status: jid={{ yum_sleeper.ansible_job_id }}
  register: job_result
  until: job_result.finished
  retries: 30

示例取自 Ansible 官方文档: http://docs.ansible.com/ansible/playbooks_async.html

相关内容