Jenkins 自动化部署

背景:由于项目所涉及的环境比较多,因此采用Jenkins进行自动化部署,系统的部署方式是在各个服务器上有源码,在服务器上有拉取gitlab代码并且打包启动的脚本命令,用Jenkins自动化部署主要针对于测试和UAT环境

操作原理:当gitlab发生了merge事件后,触发Jenkins自动构建,并且远程调用服务器上的脚本命令,实现自动化部署

配置步骤如下:

前提条件:Jenkins所在的服务器上安装git、Jenkins、maven软件,安装完毕后进入Jenkins进行配置

第一步:

为Jenkins安装插件,主要的插件有Publish Over SSH、SSH plugin、Generic Webhook Trigger Plugin(此插件的功能是当分支merge的时候触发自动构建,但是我在配置的时候发现不用此功能,用另外一种配置也可以达到相同的效果)、Gitlab Hook Plugin、GitLab Plugin

第二步:

配置SSH的远程服务器

在系统管理->系统配置中找到SSH remote hosts进行配置

Jenkins 自动化部署_第1张图片

Jenkins 自动化部署_第2张图片

第三步:

配置Gitlab

在系统配置,在系统管理->系统配置中找到Gitlab进行配置

Jenkins 自动化部署_第3张图片

 在选择Credentials的时候需要额外的操作,在添加凭证的时候选择API Token的方式进行

Jenkins 自动化部署_第4张图片

 该配置可参考该地址:jenkins配置凭证 - 简书,或者百度关键字 jenkins配置gitlab API Token

配置完后可以点击Test进行连接测试,返回success代表成功

第四步:

新建任务:

Jenkins 自动化部署_第5张图片

Jenkins 自动化部署_第6张图片

 选择Build when a change is pushed to GitLab

Jenkins 自动化部署_第7张图片

选择Target Branch Regex 代表哪一个分支发生了merge事件后 触发构建功能

注意:

Secret token在gitlab的配置中会涉及到

GitLab webhook 的地址也需要,在配置gitlab中会涉及到 

自动执行脚本的时候遇到环境变量未生效,其实自动化部署类似于SSH的远程执行命令,最好加上

source /etc/profile 这样声明环境变量

Jenkins 自动化部署_第8张图片

配置完成

第五步:

GitLab的配置 

Jenkins 自动化部署_第9张图片

 此处只是勾选了merge事件,当发生merge的时候触发

Jenkins 自动化部署_第10张图片

 配置完后进行测试

当配置的时候会发生

提示webhook无法保存:Url is blocked: Requests to the local network are not allowed

请参考该博主的配置 向 GitLab 提交代码之后自动触发 Jenkins 构建_wenhui 的博客-CSDN博客

向 GitLab 提交代码之后自动触发 Jenkins 构建_wenhui 的博客-CSDN博客

配置完成后,当发生merge的时候就可以自动化

你可能感兴趣的:(Jenkins,jenkins,git)