当我通过命令行运行同一作业时,我可以通过以下步骤生成报告:
% sudo su jenkins
% export ANSIBLE_CALLBACK_PLUGINS="/usr/lib/python2.7/site-packages/ara/plugins/callbacks"
% /bin/ansible-playbook -v -i /etc/ansible/my-inventory ./test-job.yaml`然而,在通过Jenkins执行相同的任务时,我在生成ARA报告时遇到了一些问题。我做了以下工作:
以下是.ansible.cfg的内容:
[default]
# the following lines added for ara callback_plugins configuration is required for the ARA callback
callback_plugins = /usr/lib/python2.7/site-packages/ara/plugins/callbacks
# action_plugins and library configuration is required for the ara_record and ara_read modules
action_plugins = /usr/lib/python2.7/site-packages/ara/plugins/actions
library = /usr/lib/python2.7/site-packages/ara/plugins/modules
[ara]
ARA_HOST = 0.0.0.0
ARA_PORT = 8443发布于 2018-03-14 03:46:39
与Jenkins一起运行ARA有不同的方法。
回调将数据发送到数据库,web应用程序从该数据库读取数据。
默认情况下,此数据库位于~/.ara/ansible.sqlite。例如,如果要从jenkins用户执行ansible-playbook命令,这可能是ansible-playbook。
理想情况下,您希望每个作业都有一个数据库和一个报表,这样一切都是独立的--它现在比一个大型单块数据库的规模更大。
您可以通过执行类似这的操作来自定义数据库的位置。
export ARA_DATABASE="sqlite:///$WORKSPACE/$JOB_NAME.sqlite"数据库中所有的数据都是独立的。如果你愿意的话,你可以在本地下载和浏览。
您还可以生成一个静态HTML报告。虽然我们不使用Jenkins,但这正是我们在OpenStack社区中所做的。对于任何CI作业,我们都会将日志上传到带有附加"ara“报表目录的服务器上:


支持的前进方式很可能是围绕WSGI中间件实现的,从而允许您加载自动扩展更好的“任意”数据库。您可以在这里阅读更多关于这一点的信息:https://ara.readthedocs.io/en/latest/advanced.html#serving-ara-sqlite-databases-over-http
如果您想在Jenkins服务器上运行web应用程序,也可以这样做。唯一要记住的是,回调和web应用程序都可以访问数据库。您可以使用ara-manage runserver命令轻松地尝试嵌入式web服务器。
希望这能有所帮助!
发布于 2018-03-13 12:39:33
当我今天早上刷新浏览器时,我看到了一整晚执行的所有作业的报告。这些夜间作业没有上面的环境变量集(项目3)。
export ANSIBLE_CALLBACK_PLUGINS="/usr/lib/python2.7/site-packages/ara/plugins/callbacks"因此,通过上面的第1项和第2项,我能够通过Jenkins作业运行ansible任务,并从ARA查看报告。
https://stackoverflow.com/questions/49247400
复制相似问题