zoukankan      html  css  js  c++  java
  • jenkins+Gitlab+maven+tomcat实现自动集成、打包、部署

    一、前言

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

    二、环境

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

    2、服务器环境

    一台jenkins服务器:192.168.4.117

    一台gitlab服务器:192.168.4.81

    一台测试服务器:192.168.4.91

    三、环境搭建

    1、gitlab安装:由于之前已经写过gitlab安装的博客,在此就不重复写了,把地址粘出来:http://www.cnblogs.com/lidong94/p/7161717.html

    2、jenkins安装

    (1)安装可以用war包也可以用rpm包,但是个人认为还是war包好用方便,首先下载好jenkins的war包,地址:http://mirrors.jenkins.io/war-stable/2.32.3/

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

    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

    四、jenkins配置

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

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

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

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

    创建jenkins的第一个用户,然后点击 save and finish

    点击开始使用jenkins

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

    五、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了,然后点击构建触发器选项卡

    点击触发器选项卡之后如下图,我们点击

    点击构建选项卡之后如下图: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实现自动集成、打包、部署

  • 相关阅读:
    由DataSet导出生成excel的几种方法
    linq日期查询
    上传文件
    C#获取文件的MD5值
    设置图层透明度
    highcharts中的x轴如何显示时分秒时间格式
    axios中文文档
    如何在 Highcharts 图中当所占百分比为 0 时不显示0%
    一个简易的选择小时(时分秒)的插件
    三分钟上手Highcharts简易甘特图
  • 原文地址:https://www.cnblogs.com/donghui521/p/10338212.html
Copyright © 2011-2022 走看看