尝试使用Ansible报告
我在 Ansible 的邮件列表上看到有人发布了一个这样的项目,所以我立刻尝试了一下。
来自Emmanuel B.先生
我编写了一个脚本,可以从每次ansible运行生成一个报告(网页)。这个脚本对于在大量服务器上独立运行非常有用。
无需依赖、数据库或者网络服务器。https://github.com/manuBocquet/ansible-report
希望你们中的一些人会觉得有用…
按照 README 中所写的方式,我的环境需要额外安装 babel 模块。
# git clone https://github.com/manuBocquet/ansible-report.git
将ansible.cfg进行配置
callback_plugins = ~/ansible-report/callbackplugin
callback_whitelist = ansible-report
stdout_callback = ansible-report
設置環境變數
# Ansible Report
export ANSIBLE_REPORT_PORT=8180
export ANSIBLE_REPORT_FILE=~/Test/ansible_report.json
完成设定后,尝试执行ansible-playbook到一个合适的主机上。
# ansible-playbook -i hosts hoge.yml
****** ANSIBLE NEW PLAY ******
Task []
188.166.222.0 | Ok
Task [Fetch files]
188.166.222.0 | Ok
只要STDOUT输出与平常不同即可,完成后会写入~/Test/ansible_report.json,之后
$ ansible-report/ansible-report
Load file : /home/vagrant/Test/ansible_report.json
Open browser and load : http://XXX.XXX.XXX.XXX:8180
感觉就是这样。
一旦访问。
感受
在大规模服务器上运行时,可能会考虑使用这个UI来查看结果。因为可以使用各种过滤器,很容易看出什么是成功的,什么是失败的。此外,虽然简单,但可以将结果以CSV格式导出,这也是一个优点。不过,右侧面板中的内容以JSON格式输出给每个任务,有点难以阅读。总之,总览整个情况,能够快速解决问题的目标是一个优点。