jenkins+Gitlab+maven+shell实现项目的自动化编译测试

这是早些时候写的一篇文档了,Gitlab8.0+在集成了gitlab-ci之后使用起来比jenkin方便很多,建议大家学习一下

环境

一台gitlab服务器

​ IP:192.168.100.7

一台Jenkins服务器

​ IP:192.168.90.170

​ 系统:RedHat 6.8

​ JDK:jdk1.8.0_201

​ Maven:apache-maven-3.3.9

​ Git: git-2.11.1

一台开发用机器(用来测试push代码时,由gitlab向jenkins发送push event触发脚本;后改用定时构建,所以此机器可以忽略)

​ IP:192.168.90.171

搭建Jenkins服务器过程:

1、jenkin安装

(1)、下载jenkins运行war包
wget http://mirrors.jenkins.io/war-stable/2.32.3/jenkins.war

或者本地下载之后通过ftp拷贝到服务器中

(2)、安装JDK

下载jdk文件

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

放在/usr/java 文件夹下

[root@abc ~]# cd /usr/java/
[root@abc java]# tar -xzvf jdk-8u201-linux-x64.tar.gz

修改环境变量

[root@abc java]# vi /etc/profile 
export JAVA_HOME=/usr/java/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar
[root@abc java]# source /etc/profile

通过java -version验证jdk是否安装成功

(3)、运行jenkins war包
[root@abc java]# cd /usr/jenkins/
[root@abc jenkins]# java -jar jenkins.war

如何不使用jdk的话,同样可以放到Tomcat里启动

可以通过端口8080访问

http://192.168.90.170:8080/

2、jenkins搭建

(1)、第一次访问时会出现这个页面

在这里插入图片描述

通过红标文件路径获得jenkins安装时生成的管理员密码,continue

(2)、安装相应的插件

在这里插入图片描述

左侧是一些常用的插件,右侧是自己选择插件,我们使用通用的插件 。

(3)、创建用户

在这里插入图片描述

当插件安装结束后,出现此页面,创建jenkins的第一个用户,save and finish。

(4)、创建完成

在这里插入图片描述

在这里插入图片描述

创建用户完成后,我们进入jenkins的工作台,我们接下来需要配置jenkins需要的一些全局配置,并建立到gitlab服务器的连接。

3、配置jenkins

(1)、配置jenkins全局配置

在这里插入图片描述
进入全局工具配置界面

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

将之前在jenkins服务器上安装的jdk,git,maven配置到jenkins环境中(文末附maven的安装和git安装),点击保存。

maven 和 git的安装见附2、附3

(2)、配置SSH连接信息(当有Tomcat测试服务器时,方便远程免密连接,目前不需要)

首先安装插件 : publish over ssh
在这里插入图片描述

在可选插件中搜索publishover ssh直接安装

在这里插入图片描述

安装时, 选择安装完成后重启jenkins(勾选)

在jenkins服务器上使用ssh生成密钥,然后利用密钥实现免密登陆。

执行脚本

[root@abc ~]# ssh -keygen -t rsa

一直回车即可,最终在 /root/.ssh/文件夹下生成两个文件 id.rsa(私钥)和id.rsa.pub(公钥),我们需要把公钥的内容写到测试服务器的/root/.ssh/authorized_keys文件中(因为我的测试服务器与jenkins服务器用的同一台,所以就是在本地了)

[root@abc ~]# cd /root/.ssh/
[root@abc .ssh]# cp id_rsa.pub authorized_keys 

在这里插入图片描述
在这里插入图片描述

详细解释:Passphrase是指在生成秘钥的时候设置的密码,由于我们都是一路回车下来的所以此处不用写

path to key是指私钥的位置/root/.ssh/id.rsa

key是指私钥的内容 path to key 和key任选其一即可

name是指你要远程到tomcat的名称 随便写就可以,后期为了区分,所以我写了测试服务器

hostname是指测试服务器的ip

username是指测试服务器的用户

remote directory是指要放到测试服务器的目录,这里写tomcat的部署目录

设置结束后,点击Test Configuration测试是否可以连接。
在这里插入图片描述

(3)、建立与gitlab的连通
a、需要安装gitlab相关的插件

在这里插入图片描述

我在测试时,因为需要gitlab发送webhook通知到jenkins执行脚本,所以需要Gitlab Hook Plugin这个插件,用来接收构建的请求信息,如果定时任务的话不需要此插件。

b、建立一个job

需要建立一个job,才能在job中建立到gitlab的连接。

在这里插入图片描述

c、配置job的相关信息
1、简单描述一下job的相关信息

在这里插入图片描述

2、连接到gitlab

在这里插入图片描述

Credentials 需要添加,用户名和密码使用gitlab的用户即可
在这里插入图片描述
在这里插入图片描述

对应gitlab中应该添加jenkins服务器的公钥
在这里插入图片描述

3、构建触发器

在这里插入图片描述

本处有两种构建方式

a、定时构建

​ H 0,6,12,18 * * * 每天的 0点,6点,12点,18点执行构建

​ H H/2 * * * 每隔半小时执行一次构建

​ 具体语法请百度

b、接收gitlab发送来的webhook请求,勾选可以识别的gitlab的事件

​ 此时需要在gitlab中配置webhook需要发送请求的路径。

​ 首先是jenkins的请求地址,一般结构为:

http://IP:8080/github-webhook

​ 也可以在系统配置中查看
在这里插入图片描述

之后就是将该地址配置给gitlab,

在gitlab的项目配置中,填写请求地址以及选择事件添加webhook即可。
在这里插入图片描述

注意,在gitlab 10.6版本之后默认是不允许在本地网络中请求webhook,如果确实需要此服务的话,需要gitlab管理员allow此操作
在这里插入图片描述
在这里插入图片描述

4、构建

在这里插入图片描述

此处需要注意的是,execute shell 无法找到mvn命令,问题在于其未加载/etc/profile环境变量,需要在shell开始添加

#! /bin/sh -l

也可以构建其他一些操作

5、构建后操作

此处我添加了一个操作,即在构建失败的时候,或者有其他异常时会发送邮件到此处填写的邮箱。而发件人的配置见附1

在这里插入图片描述

而如果想自定义发送邮件内容,且待附件,或者发送给多个人,抄送给某些人,可以使用Ediable Email Notification触发事件,配置如下

在这里插入图片描述
在这里插入图片描述

每次编译结束后都会将结果和build log发送给Recipient List中的邮箱,以及开发者的邮箱。两个接收邮箱结果如下:

在这里插入图片描述
在这里插入图片描述

至此,配置jenkins完成,还有很多有趣的功能可以去自己测试一下

4、测试结果

可以查看项目的构建历史,点击可以查看每一次构建的结果
在这里插入图片描述

可以查看本次构建的控制台输出
在这里插入图片描述

附1:邮件通知设置

同样在系统设置下面
在这里插入图片描述

点击测试,发送一封测试邮件到我的邮箱

在这里插入图片描述

附2:Maven安装配置

[root@abc ~]# wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
[root@abc ~]# tar -xvzf apache-maven-3.3.9-bin.tar.gz 

修改系统环境变量为:

export MAVEN_HOME=/root/apache-maven-3.3.9
export JAVA_HOME=/usr/java/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar

附3:Git安装配置

https://blog.csdn.net/mao_tao/article/details/78398933

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值