在做性能優(yōu)化之前首先需要做的是收集一些統(tǒng)計(jì)數(shù)據(jù),這樣才能為后面做的性能優(yōu)化提供數(shù)據(jù)支持,對(duì)比優(yōu)化前后的結(jié)果。非常不錯(cuò)的是,在 github 發(fā)現(xiàn)一個(gè) Ansible 任務(wù)計(jì)時(shí)插件“ansible-profile”,安裝這個(gè)插件后會(huì)顯示 ansible-playbook 執(zhí)行每一個(gè)任務(wù)所花費(fèi)的時(shí)間。
** 在
ansible2.2版本以上,ansible自帶了/usr/lib/python2.6/site-packages/ansible/plugins/callback/profile_tasks.py文件,所以,只需在callback_whitelist開啟這個(gè)插件,從而不需要下載這個(gè)文件,就可以實(shí)現(xiàn)統(tǒng)計(jì)任務(wù)處理時(shí)間的功能。**
Github 地址:https://github.com/jlafon/ansible-profile
這個(gè)插件安裝很簡(jiǎn)單,只需要簡(jiǎn)單的三個(gè)命令即可完成安裝。在你的 playbook 文件的目錄下創(chuàng)建一個(gè)目錄,目錄名 callback_plugins 然后將下載的 profile_tasks.py 文件放到該目錄下。
cd /etc/ansible
mkdir callback_plugins
cd callback_plugins
wget https://raw.githubusercontent.com/jlafon/ansible-profile/master/callback_plugins/profile_tasks.py
ansible 2.0版本需要在ansible.cfg 中加入
callback_whitelist = profile_tasks
現(xiàn)在,執(zhí)行 ansible-playbook 命令就會(huì)看到 playbook 中每個(gè) tasks 的用時(shí)情況。

在這里,我設(shè)置了 2 個(gè) task,1 個(gè) task sleep2 秒,另 1 個(gè) task sleep4秒,在 PLAY RECAP 處會(huì)匯總所有 task 執(zhí)行消耗的時(shí)間,并按照耗費(fèi)時(shí)間排序。
更多文章請(qǐng)看 Ansible 專題文章總覽