首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在从Jenkins作业执行时使用Ansible Report Analysis (ARA)

如何在从Jenkins作业执行时使用Ansible Report Analysis (ARA)
EN

Stack Overflow用户
提问于 2018-03-13 02:31:30
回答 2查看 1.4K关注 0票数 1

当我通过命令行运行同一作业时,我可以通过以下步骤生成报告:

代码语言:javascript
复制
% 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报告时遇到了一些问题。我做了以下工作:

  1. $JENKINS_HOME/..bashrc: 出口ANSIBLE_CALLBACK_PLUGINS="/usr/lib/python2.7/site-packages/ara/plugins/callbacks“`
  2. 通过以下环境变量定义了以下环境变量: Jenkins UI -> Manage Jenkins -> Configure: 名称: /usr/lib/python2.7/site-packages/ara/plugins/callbacks : ANSIBLE_CALLBACK_PLUGINS值
  3. 在我的Ansible作业->执行shell中,我指定了以下内容: 导出ANSIBLE_CALLBACK_PLUGINS="/usr/lib/python2.7/site-packages/ara/plugins/callbacks“ /bin/ansible-剧本-v -i /etc/ansible/my-inventory ./test-test.test

以下是.ansible.cfg的内容:

代码语言:javascript
复制
[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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-14 03:46:39

与Jenkins一起运行ARA有不同的方法。

回调将数据发送到数据库,web应用程序从该数据库读取数据。

默认情况下,此数据库位于~/.ara/ansible.sqlite。例如,如果要从jenkins用户执行ansible-playbook命令,这可能是ansible-playbook

理想情况下,您希望每个作业都有一个数据库和一个报表,这样一切都是独立的--它现在比一个大型单块数据库的规模更大。

您可以通过执行类似的操作来自定义数据库的位置。

代码语言:javascript
复制
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服务器。

希望这能有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2018-03-13 12:39:33

当我今天早上刷新浏览器时,我看到了一整晚执行的所有作业的报告。这些夜间作业没有上面的环境变量集(项目3)。

代码语言:javascript
复制
export ANSIBLE_CALLBACK_PLUGINS="/usr/lib/python2.7/site-packages/ara/plugins/callbacks"

因此,通过上面的第1项和第2项,我能够通过Jenkins作业运行ansible任务,并从ARA查看报告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49247400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档