Jenkins + GitLab + Maven + Tomcat + Git 持续集成环境搭建,自动打包部署

Jenkins + GitLab + Maven + Tomcat + Git 持续集成环境搭建,自动打包部署

1. 运行环境安装

服务器环境 :CentOS7.7、JDK1.8、Tomcat-9.0.37、maven-3.6.3

1.1  JDK 、Tomcat、Maven、Git 安装比较简单,此处省略,网上搜索安装教程即可.

1.2  Jenkins 、 GitLab 安装

Jenkins 安装见 https://www.cnblogs.com/universesky/p/14272386.html

GitLab 安装见 https://www.cnblogs.com/universesky/p/14272882.html

要实现自动打包构建,Jenkins需要安装插件,插件安装参考一下链接

https://www.cnblogs.com/universesky/p/14268914.html

2.GitLab 创建项目

登录GitLab :http://192.168.17.100/users/sign_in

 

 创建名称为demoTest项目

 

项目不勾选初始化文件,所以没有文件,只展示git 常用命令

 

要使用maven项目,需要自己开发,后面脚本自动部署时会用到pom.xml文件,否则会报错

 

3、Jenkins创建job

登录Jenkins :http://192.168.17.100:8081/jenkins/,创建job

 创建名称为demoTest的job,选择Maven project

 

 4、配置GitLab插件、Git插件

参见https://www.cnblogs.com/universesky/p/14268914.html ( 三、配置GitLab插件,四、配置Git插件)

 

5、配置Job的源码管理

 选择Source Code Management,选择Git, 然后去GitLab中复制项目地址,粘贴到“Repository URL”,然后点击“credentials”后面的“Add”按钮

 

 

在弹出页面里面:

  • Kind 选择 SSH Username with private key
  • Username 填 root
  • PrivateKey 选择 From a file on jenkins master ,然后将服务器的私钥(私钥、私钥、私钥,再说三遍) 粘贴进去
  • passphrase 填创建SSH秘钥时的设置的密码,未设置可不填

然后点击“Add”

 

 

 在“credentials”里选择我们刚刚创建的认证方式:

 

如果没报错,说明成功了,点击页面底部的“apply”。如果出错了,会在“Repository URL”和“Credentials”之间显示红色的错误信息。

jenkins job默认对master分支进行构建,你也可以自定义分支。这要求你的Gitlab代码仓库中要存在这个分支,一般来说,就是要向代码仓库提交一次更改,请自行完成(Gitlab项目刚创建时是空的,一个分支也没有,这样的话,自动构建时会出错)

6、配置Job的构建触发器

jenkins 选择 Build Triggers ,选择 Build when a change is pushed to GitLab. GitLab webhook URL: http://192.168.17.100:8081/jenkins/project/demoTest

点击Advanced , 在展开的页面点击 Generate 生成Secret token

 

 

点击页面左下脚的 Apply ,Save

在gitLab 设置webhook

点击Go to Webhooks

 

 填写 Jenkins job构建Build Triggers时的 GitLab webhook URL 和 Secret Token

 点击 Add webhook ,添加成功后 ,如下图:

 7、配置Job的构建脚本

在build栏目里,在Goals and options 项填写 clean install -Dmaven.test.skip=true

 

Post Steps 按照默认,add post-build step 选择Execute shell

 

 Execute shell  Comamand填写 要执行的脚本  /bin/sh -x /data/scripts/auto_push.sh

 

 

 写脚本 vim auto_push.sh

#!/bin/sh
export BUILD_ID=dontkillme
################################################
## this scripts is for auto push code to WEB server
################################################
#stop server
/data/apache-tomcat-test/bin/shutdown.sh
TPID=`ps -ef|grep apache-tomcat-test|grep -v grep|awk '{print $2}'`
TIME=`date +%F`
INSTALLDIR=/data/apache-tomcat-test/webapps/

if [ "$TPID" == "" ]
then
echo "app-tomcat stop sucessfully"
else
kill -9 $TPID
sleep 3s
fi
rm -rf $INSTALLDIR*
#push code to server and start server
cd $INSTALLDIR
cp -ar /root/.jenkins/workspace/demoTest/target/*.war $INSTALLDIR
/data/apache-tomcat-test/bin/startup.sh
echo "tomcat start sucessfull"

8、构建后操作

Post-build Actions ,选择“public build status to gitlab”

 

 选择 Advanced,填写“build name” 

 

 

点击“Apply”,点击“Save”。

 

 

完成之后,在gitlab提交代码触发了构建之后,gitlab界面上应该会显示构建状态图标,如下图所示:

 

 查看构建日志

 

 

 

 

 

posted @ 2021-01-15 09:50  adminfuzw  阅读(264)  评论(0编辑  收藏  举报