Ansible 异步操作和轮询

        默认情况下,Ansible 会按顺序依次运行任务,即执行第一个任务,完成后再执行下一个任务。在某些情况下,任务可能需要更长时间。以 yum update 为例,这需要比其他任务更长的时间。因此Playbook 将花费更长的时间来完成所有任务。

        使用 Ansible 异步模块,可以将需要更长时间的任务放在后台,并继续执行其他任务。通过使用异步模式,在长时间运行的任务完成之前执行其他任务,就可以并行运行任务,并在稍后检查这些后台运行的任务。

示例:

tasks:
- name: ansible async poll
  command: yum update
  async: 60 
  poll: 10

`async` 表示任务完成的总时间或任务的最长运行时间。

`poll` 表示 Ansible 轮询检查命令是否已完成的频率。默认值为 10 秒。

        Ansible还有在任何时候获取任务状态的选项:使用 `ansible async_status` 可以随时获取异步任务的状态。

- name: install docker
  yum:
    name: docker-io
    state: installed
  async: 500
  poll: 0
  register: my_task

- name: get the task status using ansible async_status
  async_status:
    jid: "{{ my_task.ansible_job_id }}"
  register: result
  until: result.finished
  retries: 30

`retries` 表示在失败之前尝试多少次。

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值