基于存档功能的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把:http://updates.jenkins-ci.org/update-center.json 换成:http://mirror.esuni.jp/jenkins/updates/update-center.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的包地址:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
原文:[https://blog.csdn.net/asd467672767/article/details/79072274]
操作测试:
1.先从github:下载包,将里面的所有文件(如src,pom.xml等文件),在用git推到gitlab库,Jenkins就可以填git@172.20.0.30:root/project1.git;此时不会出现pom.xml文件找不到并且能打包成.war包:https://github.com/bingyue/easy-springmvc-maven2.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代码回滚相关推荐
- 代码回滚,你真的理解吗?
什么是代码回滚? 在我正式开始今天的分享前,先给你讲两个核心概念: 1. 包回滚是指,线上运行的系统,从现在的版本回滚到以前稳定的老版本. 2. 代码回滚是指,Git 分支的指针(游标),从指向当前有 ...
- 回滚master代码_Git之master主干代码回滚
本节概览:通过git revert来实现线主干代码的回滚.如下命令 对于 merge类型的commit对象,还需要"-m"参数 git revert -m 1 commit-id ...
- 自动化代码部署、代码回滚、命令执行软件之capistrano
Hi,本周第一天没什么事,所以就先分享一下我研究自动化代码部署与回滚软件的经验.这个软件有什么用途?主要是解决自动进行代码的部署,避免手动部署时出现错误,节省时间,同时在出现问题的时候,能回滚到之前的 ...
- git:如何做代码回滚
代码回滚的场景:当别人把一些文件上传到服务器,你更新代码之后,出现了本地代码无法运行的情况:产品上线之后,出现了紧急bug,一时无法修复时,为了保证线上稳定,需要做代码回滚. 回退的步骤如下: 1)查 ...
- PyCharm代码回滚,恢复历史版本
PyCharm代码回滚,恢复历史版本 当我们修改一份代码的时候,也许会碰到修改后的代码还不如修改之前的代码能够满足自己的需求,那么这个时候我们就需要对代码进行回滚,下面我们来看一下在PyCharm里面 ...
- 怎么用pycharm更新python_利用PyCharm操作Github(仓库新建、更新,代码回滚)
Github是目前世界上最流行的代码存储和分享平台,而PyCharm是Python圈中最流行的IDE,它很好地支持了Git操作.本文将会介绍如何利用PyCharm来连接Github,同时演示Githu ...
- idea代码回滚_IDEA远程仓库版本回滚
使用 git 进行项目的版本控制时,肯定会遇到回滚版本的情况,回滚有两种,一种是本地仓库回滚,另外一种是远程仓库回滚.以下详细讲解两种回滚方式,本文主要讲解远程回滚,以及常见使用误区. 本地仓库回滚 ...
- Git学习总结(19)——Git代码回滚总结
一.Git代码回滚分为两种情况,分别是push前回滚和push后回滚. 二.push前代码回滚 push前代码回滚使用reset命令,形如:git reset [--soft | --mixed | ...
- git命令进行代码回滚
git命令进行代码回滚 1:回滚到你的目标提交记录 2:在你的项目路径下打开git命令面板 git安装路径,安装过的无需安装:下载地址 使用命令:git reset –hard [commit] 该命 ...
最新文章
- HarmonyOS UI开发 StackLayout(堆栈布局) 的使用
- 文件上传oss服务器
- swiper默认选中_Swiper
- python输出第几行第几个_python怎么PRINT出第几行
- android 如何使用LaunchMode
- 去除重复数据的SQL语句
- 【转】Windows服务调试技巧
- php邮件html模板下载,PHP Mailer与HTML模板和发送变量
- C#传递参数调用exe程序
- python plot函数label_python – Matplotlib Contour Clabel位置
- python消息模块_python - psutil 系统信息模块
- 【名词解释】7.UML类图
- vmware workstation 12 密钥
- 东芝抢先一步,推出了全球首款16TB容量的硬盘MG08系列
- 360浏览器怎么设置主页
- 蓝牙定位听说过的你,知道蓝牙定位信标的存在吗-新导智能
- 更好用的冒泡排序、双向冒泡排序,拓展荷兰国旗问题
- 接待员如何向客人upsell_前厅部接待员办理入住操作步骤
- 使用cerebro可视化ElasticSearch集群信息
- 第一阶段:Linux基础