一、场景
Jenkins除常规方式通过点击工程的立即构建以及webhook事件外,也可通过构建工程中配置构建触发器通过http请求触发构建,由于我这边场景是两个不同的单体式jenkins部署在同一局域网下的服务器a和b中,其中的服务器a中jenkins有公网入口(触发远程webhook使用)而服务器b没有,但是b也有webhook触发构建的需求,因此采用 git的webhook事件触发a的构建,a在构建工程中通过发送http请求到服务器b的Jenkins构建工程,完成b的构建流程。
二、安装Generic Webhook Trigger插件及http插件
由于我这里已经安装了所以在Installed plugins中展示:
注意:这两个插件仅需在服务器a中安装即可
三、配置API Token
在服务器b的Jenkins中为当前用户配置API Token,具体做法是:系统管理——管理用户——选择用户——Security,直接点击添加新Token,然后把生成的Token记得找地方存起来:
四、配置Generic Webhook Trigger和HTTP Request插件
在服务器a的构建工程中,配置Webhook构建触发器的信息和向服务器b的Jenkins发送请求的信息:
然后通过在Build Steps——增加构建步骤的流程,开启HTTP请求插件:
配置HTTP插件,记得提前将我们在第三步中配置的API Token的jenkins用户名以及Token信息在服务器a的jenkins中新增凭据存储起来:
五、 在相应的Git应用中配置Webhook触发Jenkins构建的请求信息:
这里我用到的是CODING,在项目详情页中,按照进入项目设置——开发者选项——Service Hook进行配置:
这里将我们之前在Generic WebHook Trigger中配置的请求信息一一对应地写入到表单中:
注意:这里的服务url记得写入Jenkins服务的公网地址,再拼接Generic Webhook Trigger的路由!
配置完成后,我们发送一个测试ping事件,再返回到我们服务器a的jenkins服务查看是否触发构建,如果a正常触发,就去b验证是否触发构建工程,全部正常触发后证明我们这套自动化构建流程完美结束!