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种方法、右上角设置-->全局安全配置-->勾选“匿名用户具有可读权限”,这种方法简单,但无法精细化控制。

image

image

  第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 权限的用户)即使没有在此处被明确授权,依然可以访问此对象。

image

image

image

image

image

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  除前两个文章中提到的插件外,需要新增一个插件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(触发器)-->勾选“触发远程构建 (例如,使用脚本)”-->填写“身份验证令牌”。

image

image

image

(2).GitLab开启webhooks出站请求或webhook允许访问指定地址

  1、右上角管理员-->设置-->网络-->出战请求-->勾选“允许来自webhooks和集成对本地网络的请求”-->保存更改。

  2、右上角管理员-->设置-->网络-->出战请求-->在“webhook和服务可以访问的本地IP地址和域名”中填写对应地址-->保存更改。

image

(3).GitLab中用项目创建者添加钩子

  项目-->点击对应的项目名称-->设置-->Webhooks-->添加新的webhook-->填写名称、描述、URL-->勾选“Merge request events”(合并请求事件)-->取消“启用SSL验证”,因为网站不是https-->添加webhook

  注意:Merge request events(合并请求事件)是当合并请求被创建、更新或合并时都会触发。

image

image

image

image

image

(4).测试

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

image

image

image

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

image

  

posted @ 2026-05-30 21:38  苦逼运维  阅读(9)  评论(0)    收藏  举报