前言:

通过Jenkins与GitLab联动,当gitlab仓库中代码发生变动(增、删、改),自动触发Jenkins自动构建发布,实现自动化运维。

思路:

  1. 安装部署gitlab、安装部署Jenkins
  2. jenkins安装功能插件
  3. 安装git工具
  4. Jenkins job配置构建触发器
  5. gitlab仓库配置webhooks

一、安装部署Gitlab、Jenkins

1、GitLab的安装流程如下:(点击跳转)
GitLab安装部署教程
2、Jenkins的安装流程如下:(点击跳转)
Jenkins安装部署教程

二、Jenkins安装插件

必备的插件是Git、GitLab、GitLab Hook;当然还可以加上Credentials Binding,来储存我们的明文密码,提高安全性。

插件安装完毕后,添加相应功能

方式一、通过http方式链接

image

方式二、SSH密钥类型

SSH免密登录示意图:
image
1、使用root用户生成公钥和私钥

ssh-keygen -t rsa

在/root/.ssh/目录保存了公钥和使用
image
id_rsa:私钥文件

​ id_rsa.pub:公钥文件

2、把生成的公钥放在Gitlab中

​ 以root账户登录——》点击头像——》Settings——》SSH Keys

​ 复制刚才 id_rsa.pub文件的内容到这里,点击“Add Key”
image
3、把生成的私钥放在Jenkins中

打开全局凭证——》添加凭证
image
image

配置新项目,选择好合适的git地址 和对应的凭证
image

三、安装Git工具

为了让jenkins支持从gitlab拉取源码,需要在服务器上安装Git工具

1、Linux安装Git

yum install git -y 安装
git --version 安装后查看版本

2、进入jenkins设置

接着登录jenkins界面,依次打开"系统管理" -> "Global Tool Configuration" 全局工具配置-> "Git" -> "Path to Git executable",

在此处填入"whereis git"查询出的地址 + "/bin/git" (如上面"whereis git"的地址为"/usr/local/git",则应该填入 "/usr/local/git/bin/git") 并保存。
image
最后再在Jenkins新建项目中源码管理Repository URL添加git地址,尝试多刷几次就可以了。
image

3、安装指定版本的git或者最新版git

有时候我们安装的git不是最新版本。可能会导致添加git仓库失败,例如以下情形:
image

原因分析:这是由于git客户端版本过低造成的!或者未安装git
Jenkins本机默认使用"yum install -y git" 安装的git版本比较低,应该自行安装更高版本的git。

我们可以从GitHub上下载最新的源码编译后安装最新的git
这里可以参考这位作者的博客
git安装
这里的描述及其部署都很详细,所以我就不过多赘述了O(∩_∩)O哈哈~

四、Jenkins job配置构建触发器

1、进入jenkins选中需要配置的项目,进行设置
image

image
Enabled GitLab triggers 允许gitlab触发

push events 允许push 只要gitlab收到push操作 构建就执行 触发事件

Opened Merge Request Events 合并请求 合并操作也可以触发

只有两种方式可以触发 push上去触发构建, 执行merge请求 把代码合并进来了

2、点击上图中的高级,可以进行深度设置
image
允许哪个分支 , 当哪个分支收到push或者merge请求,默认为所有分支 收到触发制的时候 就是执行job

可以单独定义 只允许master分支 才构建

根据自己需求定义

token作用,访问webhooks URL 需要携带token过来,才能触发,有url也不行,有url和token才触发

3、将这里配置生成的webhook URL配置到Gitlab中,就完成了。
image

五、gitlab仓库配置webhooks

1、开启webhook功能

使用root账户登录到后台,点击Admin Area——》Settings——》Network
image
·

2、勾选“Allow requests to the local network from web hooks and services”
·
image

3、在项目添加webhook

点击项目——》Settings——》Integrations
此处的URL就是第四步中jenkins触发器生成的,复制进去即可
image

4、点击Test可以对我们配置的webhook进行测试验证
image

5、注意:以下设置必须完成,否则会报错!

Manager Jenkins ——》Configure System
image

6、如图所示即为配置成功
image

六、效果演示

我们在 jenkins job 主页面看到构建任务被触发。

在gitlab 模拟一个push请求过来, jenkins自动触发构建
image

触发成功!!!

posted on 2022-04-14 16:47  史振兴  阅读(3359)  评论(0编辑  收藏  举报