admin 管理员组文章数量: 1184232
基于存档功能的Jenkins代码回滚
1.主要流程:
配置通过参数化构建–执行shell–构建后操作使用存档功能–推送构建后的代码–执行目标服务推送脚本–脚本工作包括:推送war包,检查war包是否最新,再按将旧包存另一位置按日期记录,最后重启tomcat,返回值!
存档插件:Archive the artifacts
存档是为了每次新构建任务时候可以存一份代码,当回滚时则直接从Jenkins文件夹里拉取之前已经存好好的包
主要配置如下:
A:
B:
C:
D:
E:
F:
G:
H:
I:
J:
推送脚本:
#!/bin/bash
#判断这个文件夹里是否只存在一个包
if [ -f /jenkins/war/*.war ] && [ `ls /jenkins/war/ |wc -l` -eq 1 ];then
name=`ls /jenkins/war/`
echo "$name"
#判断和上一个包的时间是否不一样,不一样则表示更新成功,一样则没更新成功!!!
shijian=`stat /jenkins/war/$name |awk 'NR==6{print $2}'`
shijian1=`cat /jenkins/sh/1.txt`if [ $shijian != $shijian1 ];then#更新旧包的时间,,1.txt是脚本执行之前先设置好,第一个传到tomcat的包的时间echo $shijian > /jenkins/sh/1.txt#if [ `ls /usr/local/tomcat/webapps/*.war|wc -l` -eq 1];thencd /usr/local/tomcat/webappsnametomcat=`ls *.war`#备份if [ $nametomcat = $name ] ;thencp -r $name /tomcat.backups/$name.`date +%Y%m%d%H%M`cdelsemv -f $nametomcat /tomcat.backups/$nametomcat.`date +%Y%m%d%H%M`cdfi#拷贝新包到服务器里面cp /jenkins/war/$name /usr/local/tomcat/webapps/echo -e "已成功备份\n已成功更新"#记录tomcat服务器里,包的最新更新时间echo -e "\n已成功完成推送至服务器,时间是: `date +"%Y-%m-%d %H:%M.%S"`" >>/jenkins/sh/mastters.txtstat1=`stat /usr/local/tomcat/webapps/$name |awk -F':' 'NR==6{print $1 $2 $3}'`echo "/usr/local/tomcat/webapps/$name"$stat1 >> /jenkins/sh/mastters.txt#重启tomcat服务器,建议用killps -ef|grep java|awk 'NR==1{print $2}' |xargs kill -9sleep 5/usr/local/tomcat/bin/startup.shelseecho 失败,无法推送至服务器,时间是:`date` >> /jenkins/sh/mastters.txtfi
else
echo 失败,无法推送至服务器,时间是:`date` >> /jenkins/sh/mastters.txt
fi
登录地址为:ip:8080/jenkins/ 注意jenkens后面有个斜杠"/"
相关报错:
1.第一次登陆后显示白色页面:解决:重启tomcat2.UnKnownHostException:updates.jenkins.io时发生错误后来发现是Jenkins反向代理的原因。解决:vim .jenkins/hudson.model.UpdateCenter.xml把:.json 换成:.json
3.错误:springmvc-maven (didn’t run)原因:/root/.jenkins/workspace/3/ 下面多了(除了pom.xml ,src,target)一些文件夹,rm 掉就好了
有关调试:
1、下载tomcat压缩包解压2、下载jenkins解压3、将jenkins.war放入tomcat的webapps目录下4、修改tomcat的conf文件夹下的server.xml中的端口信息(一般将8080修改为其他端口,避免冲突)5、进入tomcat的bin目录,使用start.sh或者shutdown.sh启动或者关闭服务6、浏览器访问http://localhost:端口号/jenkins/,即可看到jenkins页面
Jenkins版本发布比较频繁,经常会提示需要升级,到底怎么升级呢?
网上查找大部分都是说直接下载war包覆盖原来tomcat下的war包即可(使用tomcat这种方式的)。然后照着网上说的,下载了新版本的war包,覆盖过去,重启tomcat,发现没有任何用处,还是旧版本。
实际上覆盖是没有错,错在少了一步,删除同级目录下的jenkins文件夹,再重启tomcat就可以了。
不用担心自己的配置会丢失,因为配置信息不在这个目录下。
当然,为了保险起见,最好先备份原来的配置目录,一般在自己的用户目录的.jenkins下边。
使用wget命令快速下载jenkins.war:
所有Jenkins的包地址:.war
原文:[]
操作测试:
1.先从github:下载包,将里面的所有文件(如src,pom.xml等文件),在用git推到gitlab库,Jenkins就可以填git@172.20.0.30:root/project1.git;此时不会出现pom.xml文件找不到并且能打包成.war包:.jenkins任务目录 /root/.jenkins/workspace/3 拉代码编译的位置
/root/.jenkins/jobs/test/builds/3/ 3.构建后操作 Archive the tartifacts(任务配置里的)用于存档的文件 target/放在了:
/root/.jenkins/jobs/**tjlp**/builds**/3**/archive/target/easy-springmvc-maven.war**tjlp**:是任务的名称 **3:**表示第几次构建4.Jenkins发送给服务器的包的本地的位置: /root/.jenkins/workspace/test/target5.jenkins 服务器的公钥给 gitlab服务器,gitlab可以用在搜索栏通过搜索命令找到密钥填的位置
总结:
jenkins从gitlab从指定仓库拉取代码,通过maven编译成war包,通过ssh将war包发送到指定tomcat服务器目录下,Jenkins再执行tomcat服务器上面的脚本,将war包推送到tomcat的webapp目录下,并重启tocmat;代码回滚;是使用了Jenkins的存档功能,将刚上线的war包,存档下来,下次想回滚的时候,就直接将此版本发送给tomcat服务器了
查看Jenkins版本,主页下拉右下角
本文标签: 基于存档功能的Jenkins代码回滚
版权声明:本文标题:基于存档功能的Jenkins代码回滚 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.roclinux.cn/p/1698025166a283240.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论