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界面上应该会显示构建状态图标,如下图所示:
查看构建日志