Jenkins回滚可以通过每次发布从主干打tag,然后发布的时候发tag,比如tag, v1, v2,v3 如果我发布了v3,想要回滚回v2,直接在Jenkins中选择v2的tag地址重新构建就可以回滚到v2发布时的代码构建。
 
但是如果发布时没有打tag的习惯或者觉得重构代码比较费时如何操作?
下面看下如何配置
 
参数化构建过程中添加,如图,按自己需要添加
接着是发布脚本
 
case $Status  in
  Deploy)
    echo "=========== Generate deploy parameters =============="
    path="${WORKSPACE}/bak/$BUILD_ID"
    if [ -d $path ];
    then
        echo "===== The backup directory already exists ======="
    else
        mkdir -p  $path
    fi
    
    #war包路径
    jar_file=$(find $WORKSPACE/$module/target -name *.war)
    #war包名称
    war_file_name=$( basename $jar_file)
    
    yes|cp -a $jar_file $WORKSPACE/bak/$BUILD_ID/
    ;;
  Rollback)
    echo "========== Generate Rollback parameters ============"
    echo "Rollback_tag:$Rollback_tag"
    
    #war包路径
    jar_file=$(find $WORKSPACE/bak/$Rollback_tag -name *.war)
    
    #war包名称
    war_file_name=$( basename $jar_file)
      ;;
  *)
  exit
      ;;
esac
 
#如果使用ansbile发布请开启下面的变量注入
#echo jar_file=$jar_file >>tmp.pro
#echo war_file_name=$war_file_name >>tmp.pro
 
echo "============ Start the deploy or rollback ============="
scp $jar_file root@172.10.10.17:/usr/local/newindex/
ssh root@172.10.10.17 /usr/local/newindex/deploy-new-index.sh
 
##############################################################
附上陈旧备份清理脚本
#/bin/bash
#饭票20190402
#用于判断Jenkins的备份目录,如果数量大于5就删除最久的一个备份目录
units=5
dir=`ls /jenkins/workspace/ | grep -v "package-lock.json"|grep -v "node_modules"`
 
for i in $dir
do
  if [ -d /jenkins/workspace/$i/bak ];
  then
     for x in 1 2 3
     do
      dir_units=`ls /jenkins/workspace/$i/bak | wc -l`
      if [ $dir_units -gt $units ];
      then
         a=`ls -tr /jenkins/workspace/$i/bak/ | head -1`
         echo "$i 目录下有需要清理的陈旧备份,第 $x 次清理 $a 备份目录" `date`
         #find /jenkins/workspace/$i/bak -name $a  -exec rm -rf {} \;
         find /jenkins/workspace/$i/bak -name $a | xargs rm -rf;
     fi
     done
fi
 
done

Jenkins发布回滚方案的更多相关文章

  1. Jenkins+Ansible+Gitlab自动发布/回滚Spring项目

    一.实现方法流程图 流程图如下:代码托管在本地GitLab上(为了复现整套流水线,我直接使用了GitHub,懒得再搭建GitLab),开发完成后提交代码到代码仓库,[自动]触发Jenkins进行持续集 ...

  2. 在Azure DevOps Server(TFS系统)中部署回退/回滚方案(Rollback)

    概述 Azure DevOps Server(之前名TFS)是微软公司实现软件研发.测试和部署一体化的全流程解决方案.在近几年的研发过程中,Azure DevOps Server 大幅增强了软件部署过 ...

  3. 自动化部署-Jenkins备份回滚

    1.备份 备份可以使用批处理命令解决,实际就是复制当前发布文件 ::备份文件夹名,使用当前时间 set foldername=%date:~0,4%%date:~5,2%%date:~8,2%%tim ...

  4. jenkins自动化回滚阿里云k8s应用版本

    jenkins 服务器需先保留着原先构建的不同版本的应用镜像 [root@jenkins sh]# docker images|grep "maintain" registry-v ...

  5. jenkinsfile or pipline 实现微服务自动发布回滚流程

    1 #!/usr/bin/env groovy Jenkinsfile node { //服务名称 def service_name = "**" //包名 def service ...

  6. Jenkins 搭建企业实战案例 (发布与回滚)

    让我们的代码部署变得easy,不再难,Jenkins是一个可扩展的持续集成引擎,是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins非常易于安装和配置,简单易用 ...

  7. 2、jenkins+svn自动发布和回滚

    Jenkins配置回滚思路: 目前只能实现使用salt来管控配置文件的管控,配置文件的版本回滚需要后续定制化开发,或者进行格外其他的管理操作.后续实现 以下配置可以为每个项目备份构建文件到本地指定路径 ...

  8. jenkins:一键回滚站点集群

    最近在学习jenkins过程中整理了大量资料,都收录在<jenkins自动化工具使用教程>,但依然缺少一些具体实现细节. 这篇文章,介绍jenkins做集群回滚时的两个设计方案,让一键回滚 ...

  9. Git reset head revert 回滚

    Overview 涉及Git一些日常操作 :) 基础知识 <Pro Git>至少了解branch,commit的概念,及基本的原理 Git常用魔法 存档:master代码回滚方法 我是QA ...

随机推荐

  1. oracle 使用问题

    12541: 典型的listener.ora 文件内容: SID_LIST_LISTENER =   (注册到监听器的service name所在区域)  (SID_LIST =    (SID_DE ...

  2. MySQL select之后再update

    1.先查询页面 而后再根据查询的结果来更改数据库,可以使用SELECT …… FOR UPDATE 来实现,具体的代码如下 SELECT * FROM chat //查询的表 //查询的条件 FOR ...

  3. yum源遇到的问题

    1.在配置CentOS的本地yum源时,所遇到的问题,本地yum设置失败 步骤: vim /etc/yum.repos.d/local.repo  设置本地源  可能会遇到本地源问题,注意使用tab键 ...

  4. 排序——插入排序(C语言)

    void insertSort(int* a,int T){ int tmp,p; ;i<T;i++){ tmp=a[i]; p=i-; &&tmp<a[p]){ a[p+ ...

  5. oracle 之创建视图异常

    最近在整理的oracle 的时候发现.创建视图 例如: CREATE OR REPLACE VIEW dept_sum_vw(name,minsal,maxsal,avgsal) AS SELECT ...

  6. 采用线性回归方法降低双目测距到平面的误差(sklearn)

    继上篇,为了改善标定板的深度信息: remove_idx1 = np.where(Z <= 0) remove_idx2 = np.where(Z > 500)#将Z轴坐标限定在0-500 ...

  7. 去掉我的电脑中WPS,百度云,360,爱奇艺盘符

    open regedit ,跳转到 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\Na ...

  8. python模块安装问题:no matching distribution found for XXX 或者 Read timed out.

    https://blog.csdn.net/zhang_han666/article/details/88286010 看了很多解决问题的博客,亲测通过更换国内安装源和设置超时时间可以解决.在pip ...

  9. linux运维、架构之路-K8s滚动更新及回滚

    一.滚动更新        应用程序一次只更新一小部分副本,更新成功后,再更新更多的副本,最终完成所有副本的更新. 滚动更新的优点:零停机,整个更新过程始终有副本在运行,从而保证了业务的连续性. 1. ...

  10. Array数组对象方法

    Array 对象方法 方法 描述 concat() 连接两个或更多的数组,并返回结果. copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中. entries() 返回数组的可迭 ...