Ansible-Playbook之异步执行

异步功能不作为单独的模块出现,而是作为任务参数使用,因此,大多数模块都可以异步执行;

异步执行功能通常是用来解决执行任务时间过长导致SSH连接超时。

示例:

--- 
- hosts: "ansible-server" 
  tasks: 

  - name: simulate long running op (15 sec), wait for up to 45 sec, poll every 5 sec 
    command: /bin/sleep 15 
    async: 45 
    poll: 5

 

1. 参数讲解:

     

async

任务最大执行时间

 

poll

轮询间隔

 

> POLL:

当 poll > 0 的时候,任务本身依然会阻塞运行,但是,实际上ansible任务与内部执行的shell脚本之间是异步执行,在脚本执行过程中,ansible任务会根据poll设置的轮询时间间隔取获取脚本执行的状态,并根据async判断是否超时了;举个例子:

这是剧本,超时时间设置的很大,轮询间隔是20s,即每20秒获取一次执行状态;

---
- hosts: "ansible-server"
  tasks:
  - name: test for sync job
    shell: |
      cd ~/scripts
      sh sleep.sh
    async: 999
    poll: 20

这是sleep.sh脚本,睡眠5s;

sleep 5s

执行结果是整个任务依然需要等待大约20s才能执行完成(虽然实际上有效工作时间只有5s);

当 poll = 0 的时候,任务本身实现了非阻塞的异步执行,由于没有轮询间隔,代表着该任务本身并不会主动获取任务执行状态和结果;此时异步任务会一直执行,直到完成、失败或超时;

我们举个例子:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值