jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署

1、前言

首先出于提升本身技术水平和琢磨能作点什么能提升工做效率,上线工做实在无聊、重复(手动编译、打包,传包,重启),因而就想到了jenkins,jenkins持续集成已经不是什么新鲜的话题,网上文章一大堆,俗话说天下文章一大抄,基本上就是那三五篇,相信要是之前没接触过的人没有两三天是弄不出来的,特别是身为运维岗,一些关于开发的东西仍是不太懂,在搭建以前什么持续集成、持续构建、持续部署这些概念真是搞不懂,也许是我比较愚笨,在我研究的这段时间里,真是一步一个坑,想一想这人品,写这个的目的不为何,但愿后来者少踩坑,也为本身作个记录。html

2、环境

一、粘一副从网上看见的我认为好理解的图java

二、服务器环境git

一台jenkins服务器:192.168.4.117web

一台gitlab服务器:192.168.4.81apache

一台测试服务器:192.168.4.91vim

3、环境搭建

一、gitlab安装:因为以前已经写过gitlab安装的博客,在此就不重复写了,把地址粘出来:http://www.cnblogs.com/lidong94/p/7161717.html浏览器

二、jenkins安装tomcat

(1)安装能够用war包也能够用rpm包,可是我的认为仍是war包好用方便,首先下载好jenkins的war包,地址:http://mirrors.jenkins.io/war-stable/2.32.3/服务器

(2)安装jdk,建议使用1.8以上的版本,安装好jdk以后执行:vim /etc/profile  在这个文件最后加入以下代码:app

export JAVA_HOME=/usr/local/jdk1.8.0_131
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

 (3)而后执行如下命令,这样是使用默认的8080端口,也能够修改使用别的端口,固然这个war包也能够放到tomcat里启动,这里就不介绍tomcat启动的方式了。

java -jar jenkins.war

(4)到这里jenkins就安装成功了,能够经过浏览器访问:http://192.168.4.117:8080

4、jenkins配置

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

cat标红的那个路径,把内容粘到文本框内,点击continue,稍等一分钟以后会进入如下页面

点击第一幅图安装插件。PS:这两幅图的区别就是一个是自定义安装插件,一个本身选择要安装的插件,建议选择第一个,后边用到哪些在本身安装

等待十分钟左右插件安装完成,插件安装完成以后出现以下图

建立jenkins的第一个用户,而后点击 save and finish

点击开始使用jenkins

这就是jenkins的主界面,接下来开始jenkins之旅

5、jenkins界面配置

相信好多人到这一步以后就不明白该怎么作了,我曾经搭建过四五次到这里,可是每次新建项目的时候就懵懵懂懂的,稀里糊涂的建一个项目,而后就搁置了,仍是那句话,作什么事情以前先想明白本身想要什么,好了,废话很少说,咱们的初衷就是要实现只要开发提交代码到gitlab,jenkins就会自动检测到而且自动进行构建(合并、打包),构建完成以后将打好的包(war、jar包均可以)经过jenkins的插件传到tomcat的webapps目录下,而后重启tomcat,实现自动打包部署。

(1)首先咱们须要配置jenkins的全局配置,包括(jdk、maven)

点击系统管理-----global tool configuration

进去以后以下图

maven配置默认便可,jdk配置别名随便写,java_home就是jdk的家目录,不知道的话可使用java -version查询

git设置如上图所示,接下来配置maven,安装maven也能够在这里自动安装也能够本身下载安装,可是建议本身下载安装,下载地址:wget http://mirrors.cnnic.cn/apache/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz下载完成解压便可不须要过多操做,而后使用mvn -v查看安装是否成功及安装信息,个人安装信息如图记住这个路径,这个路径须要在下图的maven home 配置

 

 

 以上这些配置全都在global tool configuration里边,配置完点击保存

(2)接下来配置ssh链接信息,首先先安装ssh插件:publish over ssh

点击系统管理----管理插件

点击进来以后以下图,点击可选插件,而后在过滤文本框处输入publish over ssh ,把前面的复选框选中以后点击直接安装

 

 安装完成后以下图,勾选安装完后重启jenkins,这个插件就会生效,因为我这个插件已经安装,这个图只是一个示例

安装完成后接下来配置ssh,也就是要上传的测试服务器ssh信息

首先咱们先要在jenkins服务器上生成秘钥,而后利用秘钥要进行免密登陆

在jenkins服务器上执行ssh-keygen -t rsa,一路回车就能够  一路回车的话密码为空,这样就在/root/.ssh/下生成的两个文件id.rsa(私钥)和id.rsa.pub(公钥),咱们须要把公钥的内容写到测试服务器(tomcat服务器上)的/root/.ssh/authorized_keys文件中  若是没有就新建一个,接下来咱们开始配置

点击系统管理---系统设置

进去以后找到Publish over SSH项,以下图

 

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

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

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

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

hostname是指测试服务器的ip

username是指测试服务器的用户

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

点第一张图左下角的高级能够修改端口,点击test  configuration能够测试链接  ,以下图就是测试成功,说明咱们如今已经可使用jenkins链接服务器了

 

 (4)如今jenkins已经能够和远程服务器通讯了,可是还没和gitlab连通,接下来咱们配置gitlab和jenkins的连通,首先先安装gitlab相关插件,关于插件安装上面已经写过

接下来咱们新建一个job,由于只有先建了job才能和gitlab连通,以下图,这里填写一个名字如test,选择构建一个自由风格的软件项目,点击ok

点击完以后以下图,描述这块记得写上,最开始这块没写,在构建项目的时候会有报错,报不能配置name[ ],这里写上就行了,

而后点击源码管理以下图,咱们选择git,repository url  写gitlab仓库的地址,credentials是指信任,咱们须要在gitlab中添加jenkins的公钥 ,在下图的key中填写jenkins服务器的公钥,title处填写jenkins,而后在到jenkins上就能够看到credentials处能够选择jenkins了,而后点击构建触发器选项卡

 

点击触发器选项卡以后以下图,咱们点击Build when a change is pushed to GitLab. GitLab CI Service URL: http://192.168.4.117:8080/project/test,记住这个url地址,待会咱们须要在gitlab上配置  ,而后点击构建选项卡   构建环境暂不配置,

点击构建选项卡以后以下图:maven version处选择咱们在global tool configuration处配置的maven名称  goals处填写maven命令,由于咱们要打包,因此填写clean package,不懂的能够去学一下maven命令,而后点击构建后操做选项卡

点击构建后选项卡以后以下图,选择send build artifacts over ssh  ,name处选择咱们配置的测试服务器,transfers这里特别须要注意,我在这边卡了大半天,由于网上写的文章含糊不清 source files 处填写想要传到远程服务器的东西 ,能够是目录、war包、jar包等均可以,这个路径是至关于workspace的路径  workspace目录能够在/root/.jenkins/workspace/找到因此说这里不用写/root/.jenkins/workspace/  由于咱们构建完的war包或者jar包在/root/.jenkins/workspace/job名/target/下因此这里能够写target/war包名.war或者**/*.war,

remove prefix是指当把war包传到服务器的时候去掉source files处填写的war包以前的路径,要是不去除的话会在tomcat的webapps建一个target  target之下才是war包,这固然不是咱们想要的

remove directory 是指远程到服务器的目录   这个在这就不配置了  由于咱们在系统设置处已经配置  这边直接调用就能够

exec command是指传过去包以后执行的命令,这里也能够调用脚本,

 而后点击保存就能够了这样咱们就建完了一个job,有的人可能会想起来还没配置gitlab,good,还记得建job的时候要记住的那个url地址吗,接下来咱们须要在gitlab中找到web hooks这个选项,不一样的gitlab   web hooks在不一样的地方  ,个人是在下图点击integrations

点击integrations后以下图,须要把jenkins的url:http://192.168.4.117:8080/project/test填到此处,而后点击添加web hooks,这个web hooks的做用就是jenkins检测到gitlab有代码提交就会触发jenkins进行构建

到此,jenkins自动打包,上传就配置完成了,接下来咱们验证一下,我提交代码到gitlab一下,控制台输出以下,

咱们到测试服务器的webapps下验证以下,jar包已经传到tomcat下了

jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署

相关文章
相关标签/搜索