加快ansible执行

在目标机器量非常大的时候,我们通过可以将gather_facts设置为no或false加快任务的执行速度,也可以通过修改运行策略实现该目的。 默认情况下,ansible会有所有主机执行task,该task在所有主机成功或失败后才会进行下一个task,因此,最快的执行结果取决于task中最慢的那台主机,这个策略叫做linear。另外一个策略叫做free,它不会等task在所有主机执行的结果,如果一台已完成一项task,会在该task上执行下一项任务。 **linear测试** ``` # cat qq web01 sleep_s=1 web02 sleep_s=2 web03 sleep_s=3 # cat stra.yml --- - hosts: all connection: local tasks: - name: web01 shell: sleep "{{sleep_s}}" - name: web02 shell: sleep "{{sleep_s}}" - name: web03 shell: sleep "{{sleep_s}}" # ansible-playbook stra.yml -i qq PLAY [all] ****************************************************************************** TASK [Gathering Facts] ****************************************************************** ok: [web03] ok: [web02] ok: [web01] TASK [web01] **************************************************************************** changed: [web01] changed: [web02] changed: [web03] TASK [web02] **************************************************************************** changed: [web01] changed: [web02] changed: [web03] TASK [web03] **************************************************************************** changed: [web01] changed: [web02] changed: [web03] PLAY RECAP ****************************************************************************** web01 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 web02 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 web03 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 ``` **free测试** ``` # cat stra.yml --- - hosts: all connection: local strategy: free <<<修改策略为free tasks: - name: web01 shell: sleep "{{sleep_s}}" - name: web02 shell: sleep "{{sleep_s}}" - name: web03 shell: sleep "{{sleep_s}}" # ansible-playbook stra.yml -i qq PLAY [all] ****************************************************************************** TASK [Gathering Facts] ****************************************************************** ok: [web02] ok: [web03] ok: [web01] TASK [web01] **************************************************************************** changed: [web01] changed: [web02] TASK [web02] **************************************************************************** changed: [web01] TASK [web01] **************************************************************************** changed: [web03] TASK [web03] **************************************************************************** changed: [web01] TASK [web02] **************************************************************************** changed: [web02] changed: [web03] TASK [web03] **************************************************************************** changed: [web02] changed: [web03] PLAY RECAP ****************************************************************************** web01 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 web02 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 web03 : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0 ``` > 引用自:奔跑吧,ansible
上一篇:ansible批量推送密钥


下一篇:Playbook部署lamp