如何运行很长的ansible任务?

5 ssh scheduled-tasks ansible

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

我需要运行它们,但所有这些任务都需要很多时间才能完成(从 1 小时到 12 小时),并且它们必须按照特殊的排序顺序进行(我的意思是,“任务 2.1”必须仅在“任务 2”之后开始,并且很快)

我怎样才能做到这一点?

小智 6

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

- name: 'YUM - fire and forget task'
  yum: name=docker-io state=installed
  async: 1000
  poll: 0
  register: yum_sleeper
Run Code Online (Sandbox Code Playgroud)

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

- 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
Run Code Online (Sandbox Code Playgroud)

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