目录

  • 前言:
  • 思路:
  • 一、安装部署Gitlab、Jenkins
  • 二、Jenkins安装插件
  • 方式一、通过http方式链接
  • 方式二、SSH密钥类型
  • 三、安装Git工具
  • 1、Linux安装Git
  • 2、进入jenkins设置
  • 3、安装指定版本的git或者最新版git
  • 四、Jenkins job配置构建触发器
  • 五、gitlab仓库配置webhooks
  • 六、效果演示

前言:

通过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方式链接

gitlab自动发布 gitlab 自动构建部署_git

方式二、SSH密钥类型

SSH免密登录示意图:

gitlab自动发布 gitlab 自动构建部署_Jenkins_02


1、使用root用户生成公钥和私钥

ssh-keygen -t rsa

在/root/.ssh/目录保存了公钥和使用

gitlab自动发布 gitlab 自动构建部署_Jenkins_03


id_rsa:私钥文件

id_rsa.pub:公钥文件

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

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

复制刚才 id_rsa.pub文件的内容到这里,点击“Add Key”

gitlab自动发布 gitlab 自动构建部署_Jenkins_04


3、把生成的私钥放在Jenkins中打开全局凭证——》添加凭证

gitlab自动发布 gitlab 自动构建部署_安装部署_05


gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_06

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

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_07

三、安装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") 并保存。

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_08


最后再在Jenkins新建项目中源码管理Repository URL添加git地址,尝试多刷几次就可以了。

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_09

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

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

gitlab自动发布 gitlab 自动构建部署_安装部署_10

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

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

四、Jenkins job配置构建触发器

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

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_11

gitlab自动发布 gitlab 自动构建部署_Jenkins_12


Enabled GitLab triggers 允许gitlab触发

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

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

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

2、点击上图中的高级,可以进行深度设置

gitlab自动发布 gitlab 自动构建部署_Jenkins_13


允许哪个分支 , 当哪个分支收到push或者merge请求,默认为所有分支 收到触发制的时候 就是执行job

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

根据自己需求定义

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

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

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_14

五、gitlab仓库配置webhooks

1、开启webhook功能

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

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_15


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

·

gitlab自动发布 gitlab 自动构建部署_安装部署_16

3、在项目添加webhook

点击项目——》Settings——》Integrations

此处的URL就是第四步中jenkins触发器生成的,复制进去即可

gitlab自动发布 gitlab 自动构建部署_Jenkins_17

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

gitlab自动发布 gitlab 自动构建部署_Jenkins_18

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

Manager Jenkins ——》Configure System

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_19

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

gitlab自动发布 gitlab 自动构建部署_Jenkins_20

六、效果演示

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

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

gitlab自动发布 gitlab 自动构建部署_gitlab自动发布_21

触发成功!!!