环境介绍: 本文基于第一篇自动代码更新环境,未安装jenkins gitlab,参考第1篇
jenkins需安装 Maven Integration plugin 插件
wget http://updates.jenkins-ci.org/download/plugins/maven-plugin/3.4/maven-plugin.hpi
下载后需要在web界面上进行上传安装
jenkins配置
1、新建一个maven任务,丢弃旧的构建为7天
2、添加gitlab上项目地址及验证方式,选择构建的分支。
3、选择构建触发器类型,我这里选择当gitlab有更新时进行构建。并在高级里生成 secret token.
4、构建的pom文件路径和构建命令参数,以当构建成war成功后,执行相应的自动化更新脚本命令
#!/bin/bash CODE_DIR="/var/lib/jenkins/workspace/carespay/target/" #项目目录 DATE_TIME=`date +%Y-%m-%d-%H-%M-%S` #时间格式 DIR_NAME=carespay-${DATE_TIME} TAR_NAME=$DIR_NAME.war #打包后的名字 WEB_ADDR=192.168.10.227 #web服务器地址 WEB_DIR="/usr/local/tomcat5/webapps" #web服务器站点目录的上一级 "/usr/local/tomcat1/webapps" WEB_NEWDIR_NAME=web-${DATE_TIME} #web服务器新建的站点目录名字 #进入到项目目录并打包代码 tarcf_code(){ cd $CODE_DIR && mv carespay-ms.war /opt/$TAR_NAME } #拷贝到web服务器的站点目录的上一级 scp_code(){ scp /opt/$TAR_NAME $WEB_ADDR:$WEB_DIR } #连接web服务器备份旧版代码 tarxf_code(){ ssh $WEB_ADDR "cd $WEB_DIR && mv carespay* ../back/ " } #将新建的站点目录与html站点目录做一个软链接 ln_code(){ ssh $WEB_ADDR "cd $WEB_DIR && rm -rf new && ln -s $DIR_NAME new" } #重启tomcat reboot(){ ssh $WEB_ADDR "cd $WEB_DIR && sh reboot.sh && sleep 1m" } #删除旧代码 del_code(){ ssh $WEB_ADDR "cd $WEB_DIR && rm -rf $TAR_NAME" } main(){ tarcf_code; tarxf_code; scp_code; reboot; ln_code; } main
#!bin/bash #手动重启tomcat5 tid=$(ps -ef |grep tomcat5 |grep -v grep |awk '{print $2}') kill -9 $tid sh /usr/local/tomcat5/bin/startup.sh echo `date` $tid "tomcat5 已重启" >>../reboot.log
gitlab设置
1、创建一个真实项目,从git克隆真实代码过来。
2、项目--设置---集成,添加jenkins项目地址和token成为一个绑定的Webhooks。
3、gitlab上用webide模拟一下更新代码,查看jenkins构建状态和10.227tomcat是否构建成功。
可以看到成功自动构建,其中还有很多需要优化的地方,如有更好的建议,欢迎大家留言~~~
4、如果有报jdbc这类jar包无法下载错误,直接拷贝一个jar到相应的目录,因为这类jar无法自动下载成功
[root@xfg 11.2.0.3]#ls
ojdbc6-11.2.0.3.jar ojdbc6-11.2.0.3.jar.lastUpdated ojdbc6-11.2.0.3.pom.lastUpdated
[root@xfg 11.2.0.3]#pwd
/root/.m2/repository/com/oracle/ojdbc6/11.2.0.3