Raa*_*ath 21 benchmarking provisioning task vagrant ansible
我正在将一个流浪汉配置者从shell转换为ansible,我想知道是否有任何选项可以显示完成每项任务所需的实际时间?
理想情况下,我想使用shell:方法和内置的yum:with_items方法来测量在yum中安装多个包之间的区别.ATM我坐在这里有一个秒表,但我需要准确的时间.
Mik*_*nam 50
我通过添加回调插件解决了Ansible任务持续时间的问题.回调插件旨在允许您根据Ansible运行环境中发生的事件运行您自己的arbirary代码.
我使用的插件可以通过创建一个callback_plugins目录并将python脚本放入其中来轻松部署.
以下是playbook运行结束时结果输出的示例:
PLAY RECAP ********************************************************************
npm_install_foo | Install node dependencies via npm ------------------- 194.92s
gulp_build | Run Gulp to build ----------------------------------------- 89.99s
nodejs | Update npm ---------------------------------------------------- 26.96s
common | Update apt cache and upgrade base os packages ----------------- 17.78s
forever | Install forever (restarts Node.js if it fails) --------------- 16.84s
nodejs | Node.js | Install Node.js and npm ----------------------------- 15.11s
bower | Install bower --------------------------------------------------- 9.37s
Copy locally fetched repo to each instance ------------------------------ 8.03s
express | Express | Install Express ------------------------------------- 8.00s
Run Code Online (Sandbox Code Playgroud)
另外,我将shell命令添加time到ansible-playbook运行中.这很好地聚合了所有单个任务持续时间.
编辑:
从Ansible v2.0.0开始,这个特殊的插件随附Ansible本身!只需添加callback_whitelist = profile_tasks到您的~/.ansible.cfg文件.