前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Jenkins通过备份文件实现回滚

Jenkins通过备份文件实现回滚

作者头像
dogfei
发布2020-07-31 14:12:40
1.6K0
发布2020-07-31 14:12:40
举报
文章被收录于专栏:devops探索

回滚是非常常见的运维操作,我们可以通过jenkins选择对应的tag,或者选择对应的文件进行回滚,这里先介绍下利用备份文件来进行回滚

大体思路就是:现在jenkins主机上执行构建任务,同时对打包好的java代码做一次备份,备份格式可以是包名+项目名+日期的格式,将备份好的包放到固定目录,当下一次选择构建回滚时,可以以参数的形式选择对应的要回滚的包名,然后将包名通过参数传给脚本,脚本则将包发到目标主机上完成回滚操作。

安装插件

实现步骤

1、创建一个自由风格的任务

2、参数化构建过程

Git Parameter

Choice Parameter(选项参数)

Active Choices Reactive Parameter

代码语言:javascript
复制
path="/export/jenkins/workspace/backup/${jenkinsProject.name}"
rollback=['bash', '-c', "ls -t1 ${path} "].execute().text.readLines()

if (action.equals("RollBack")) {
  return rollback
} else {
  return ["选择RollBack后显示"]
}

这里是放在${JENKINS_HOME}/workspace/backup目录下,根据job名进行目录区分

以上是非常关键的一步,需要写Groovy script脚本,把备份的文件展示出来。注意{jenkinsProject.name}获取job名,{jenkinsProject.workspace}获取workspace名

下面就是配置Git仓库地址,这里不再贴,最后是根据参数action的值,来做判断,决定最后是deploy 还是 rollback

3、增加构建步骤

execute shell

代码语言:javascript
复制
dst_ip="172.20.111.161"
dst_dir="/export/servers/tomcat/"
jar_file="cashloan-app-manage"
DATE=$(date +"%Y-%m-%d_%H:%M")
bak_dir="${JENKINS_HOME}/workspace/backup/${JOB_NAME}"
[ -d $bak_dir ] || mkdir -p $bak_dir

case $action in
Deploy)
    mvn package -Dmaven.test.skip=true -P test 
    scp cashloan-manage/target/${jar_file}.war root@$dst_ip:$dst_dir
    ssh  root@$dst_ip "/shell/run-tomcat-app-manage.sh"
    cp cashloan-manage/target/${jar_file}.war ${bak_dir}/${jar_file}_${JOB_NAME}_${DATE}.war
    ;;
Rollback)
    scp -r ${bak_dir}/${RollbackName} root@$dst_ip:$dst_dir/${jar_file}.war
    ssh  root@$dst_ip "/shell/run-tomcat-app-manage.sh"
    ;;
esac

4、开始构建

以上就是关于备份文件来进行回滚的jenkins相关配置。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装插件
  • 实现步骤
  • 3、增加构建步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档