Ansible从入门到放弃------Ansible源码剖析(4)

Ansible的异步模式

(1.)Ad-Hoc模式(命令分发模式)
主要两个参数:
-B-B SECONDS, --background=SECONDS
run asynchronously, failing after X seconds
(default=N/A)
#后台运行的最大时间,如果最大时间还没跑完的话,就返回失败

-P POLL_INTERVAL, --poll=POLL_INTERVAL
set the poll interval if using -B (default=15)
#每隔多少秒去远程机器的异步jid文件取数据,直到取到数据或者-B参数设置的时间到了,返回错误
-B和-P要同时出现使用

ansible -i ip.txt test -B 120 -P 5 -m shell -a 'sleep 5;echo 123456789;sleep 30'

#执行任务的最大超时时间是120秒,异步执行,每隔5秒去轮训下任务jid 的状态,直到取到状态退出或者超时时间到返回错误

(2).playbook模式
主要涉及2个配置项
async: 45
poll: 0
yaml文件如下

---
- hosts: test
  #vars:
  # worker_processes: 4
  # num_cpus: 4
  # max_open_file: 65506
  # root: /data
  remote_user: admin
  tasks:
  - name: ping result
  shell: sleep 40
  async: 50
  poll: 5

#async:对应了上面的-B,后台运行的最大时间,如果最大时间还没跑完的话,就返回失败
#poll:对应了上面的-P,每隔多少秒去远程机器的异步jid文件取数据,直到取到数据或者-B参数设置的时间到了,返回错误

推荐阅读更多精彩内容