CentOS服务器上搭建Jenkins+maven+GitLab(三)——GitLab钩子实现自动化
CentOS服务器上搭建Jenkins+maven+GitLab(一)——环境搭建
CentOS服务器上搭建Jenkins+maven+GitLab(二)——创建一个maven项目
整理构建触发器时发现最新版已经不需要安装插件Build Authorization Token Root,但还是要安装插件GitLab,URL使用原本的“[ JENKINS_URL ]/job/[ JOB_NAME ]/build?token=[ TOKEN_NAME ]”,两种方法如下:
第1种方法、右上角设置-->全局安全配置-->勾选“匿名用户具有可读权限”,这种方法简单,但无法精细化控制。


第2种方法、右上角设置-->全局安全配置-->授权策略里面选择“项目矩阵授权策略”-->匿名用户的全部权限里面勾选“Read”-->保存-->回到项目页面,点击项目名称-->配置-->General-->勾选“启用项目安全”-->Inheritance Strategy的三个选项单独讲-->勾选匿名用户的任务权限里面的“Read”-->Save(保存)
Inheritance Strategy的三个选项:
1、Inherit permissions from parent ACL:此项将继承其父级项的权限,以及此处授予的权限。如果此项位于 Jenkins 的顶层,它将继承全局安全设置。
2、Inherit globally defined permissions:此项将继承全局安全设置,以及此处授予的权限,但不会继承其父级项的权限。
3、Do not inherit permission grants from other ACLs:此项既不会继承全局安全设置,也不会继承其父级项的权限,只有在此处授予的权限才会被赋予。为了确保用户不会意外地被锁在 Jenkins 门外,这里做了一个例外处理:Jenkins 的管理员(拥有 Overall/Administer 权限的用户)即使没有在此处被明确授权,依然可以访问此对象。





-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
除前两个文章中提到的插件外,需要新增一个插件Build Authorization Token Root和GitLab,它的作用是:即使匿名用户无法查看 Jenkins,也要确保构建和相关 REST 构建触发器能够被访问。接口有原本的“[ JENKINS_URL ]/job/[ JOB_NAME ]/build?token=[ TOKEN_NAME ]”,变为“[ JENKINS_URL ]/buildByToken/build?job=[ JOB_NAME ]&token=[ TOKEN_NAME ]”
(1).修改Jenkins网页中Test01项目的配置
点击项目名称-->设置-->Tiggers(触发器)-->勾选“触发远程构建 (例如,使用脚本)”-->填写“身份验证令牌”。



(2).GitLab开启webhooks出站请求或webhook允许访问指定地址
1、右上角管理员-->设置-->网络-->出战请求-->勾选“允许来自webhooks和集成对本地网络的请求”-->保存更改。
2、右上角管理员-->设置-->网络-->出战请求-->在“webhook和服务可以访问的本地IP地址和域名”中填写对应地址-->保存更改。

(3).GitLab中用项目创建者添加钩子
项目-->点击对应的项目名称-->设置-->Webhooks-->添加新的webhook-->填写名称、描述、URL-->勾选“Merge request events”(合并请求事件)-->取消“启用SSL验证”,因为网站不是https-->添加webhook
注意:Merge request events(合并请求事件)是当合并请求被创建、更新或合并时都会触发。





(4).测试
修改代码合并分支,我在代码里面加了一个时间戳,然后GitLab里面的user01用户审批合并,root用户执行合并。



接着到TestServer服务器上检查一下


浙公网安备 33010602011771号