Jenkins 与 RabbitMQ 集成包括两部分: 1. 通过 RabbitMQ 触发 Jenkins 构建,这里 Jenkins 作为 RabbitMQ 的 consumer;2. Jenkins 构建结束后将构建结果发送到 RabbitMQ,以便其他程序消费,这里 Jenkins 作为 RabbitMQ 的 producer
这篇文章将介绍如何将 Jenkins 构建结构发送到 RabbitMQ,内容如下:
- 插件安装
- 配置 RabbitMQ Consumer
- 配置 Jenkins Job
- 配置 RabbitMQ
- 测试验证
关于如何在 Centos 7 下安装 RabbitMQ,可以参考这篇文章:阿里云 Centos 7 安装和配置 RabbitMQ
关于如何通过 RabbitMQ 触发 Jenkins 构建,请参考 Jenkins 与 RabbitMQ 集成(一)
1. 插件安装
如果已经按照 Jenkins 与 RabbitMQ 集成(一) 中步骤安装过 RabbitMQ Build Trigger Plugin
的同学可以跳过这一步。
打开 Jenkins 主页,进入 Manage Jenkins -> Manager Plugin
, 搜索并安装插件 RabbitMQ Build Trigger Plugin
.
如果找不到RabbitMQ Build Trigger Plugin
,不要担心,可能是Update Site
配置得不对, 点击 Installed
右边的 Advanced
,配置 Update Site
的URL 为 http://updates.jenkins-ci.org/stable/update-center.json
, 再重新搜索就好。
2. 配置 RabbitMQ Consumer
如果已经按照 Jenkins 与 RabbitMQ 集成(一) 中步骤配置过 RabbitMQ Consumer
的同学可以简化这一步:新加一个 Queue 用来接收 Jenkins 发送过去的 Message 就好,我新加的 Queue 名为 jenkins.build-poster.queue
。
新同学请参照如下步骤配置:
打开 Jenkins 主页,进入 Manage Jenkins -> Configure System
, 找到 RabbitMQ Consumer
, 选中 Enable consumer
,并配置好 Service URI
,Username
和Password
, 然后点击 Test Connection
是否可以与Rabbitmq通信。
在 Queues
里点击 Add
,加一个 Queue 用来接收 Jenkins 发送过去的 Message 就好,加一个 Queue 用来接收 Jenkins 发送过去的 Message 就好,如下图所示:
3. 配置 Jenkins Job
点击左侧的 Configure
,进入配置页面,点击 Post build actions
,点击add post build action
,在弹出的列表中选择 Publish build result to RabbitMQ
然后配置对应的 exchange name 和 routing key 就好。
4. 配置 RabbitMQ
如果已经按照 Jenkins 与 RabbitMQ 集成(一) 中步骤实践过的同学已经建好了名为 test.build-trigger.exchange
的 exchange 了,只需要再新建一个名为 jenkins.build-poster.queue
的 queue,并将 test.build-trigger.exchange
与 jenkins.build-poster.queue
绑定,routing key 设置为在 Jenkins 中配置的值,我配置的值为 test.build.poster
。
5. 测试验证
构建你的 Jenkins 工程,构建结束后,你就能在 RabbitMQ Management 中看到刚刚的构建结果啦,如下所示: