首页 > 其他分享 >Jenkins自动部署与回滚

Jenkins自动部署与回滚

时间:2023-06-06 16:14:32浏览次数:40  
标签:回滚 部署 projectName Choices WORKSPACE path Jenkins echo backup

Deploy发布的思路:

用户无需填写 Version  直接选择对应的项目和 Deploy 发布即可,会自动生成一个 项目名+构建时间 的备份文件

多人使用Jenkins构建的时候会不知道 Version 要填什么  而且本人不喜欢使用 Version 这个变量

Rollback回退的思路:

选择Rollback  选择对应的回退版本即可

 

安装 Active Choices Plug-in 插 件

我这是安装好的  如果没安装 会有安装选项  安装完启用即可

 

 

配置参数化构建

配置 Active Choices Parameter

 

填写名字 和参数选项 我配置的是多项目实例的

return [
  "projectName1",  #注意这里有个逗号
  "projectName2",
  "projectName3"
]

 

 

再添加一个 Active Choices Parameter 配置发布和回滚参数

return [
  "Deploy",
  "Rollback"
]

 

 

 

配置Active Choices Reactive Parameter

填写名字和指定备份脚本的存放的路径

备份是放在Jenkins服务器上的

# 指定当前job的备份文件夹 注意这里不能使用${WORKSPACE}参数 但是可以使用Active Choices Parameter定义的参数如上面的${projectName}
path="/var/jenkins_home/workspace/project/${projectName}/backup/"
tags=['bash','-c',"ls -t1 ${path}"].execute().text.readLines()
 
if (Status.equals("Rollback")) {
if (projectName.equals("projectName1")){
 return tags
}
if (projectName.equals("projectName2")){
 return tags
}
if (projectName.equals("projectName3")){
 return tags
}
} 

 指定上面Active Choices Parameter 定义的参数 多个参数中间用逗号分隔

 

编辑shell 实现发布和回滚

我的项目是java 脚本如下  并保留3个备份  超过3个会自动删除最旧的

echo "回滚"
path="${WORKSPACE}/${projectName}/back_up/${projectName}-${BUILD_TIMESTAMP}"    

case $Status in
    Deploy)
    echo "Status:$Status"

    mkdir -p  $path
    cp  -r  ${WORKSPACE}/${projectName}/target/xjar     $path/ 
    cp  -r  ${WORKSPACE}/${projectName}/target/lib     $path/ 
    cp  -r  ${WORKSPACE}/${projectName}/target/${projectName}*.jar     $path/ 

    echo "开始删除超过3个的旧文件"
    backup_path="${WORKSPACE}/${projectName}/back_up"
    backup_copies=3
    FILENUM=`ls -lrt ${WORKSPACE}/${projectName}/back_up/ | grep ${projectName}*| wc -l`
    if  [ ${FILENUM} -gt ${backup_copies} ];
    then
            OLDEST_File=`ls -lrt ${backup_path}| grep ${projectName}* |awk '{print $9}' | head -1`
            echo "最旧的文件夹: ${OLDEST_File}"
            rm -rf ${backup_path}/${OLDEST_File}
            echo "文件夹: ${OLDEST_File}已删除"
    fi
    ;;
    Rollback)
    echo "Status:$Status"
    
    cp  -rf  ${WORKSPACE}/${projectName}/back_up/${RollbackVersion}/*  ${WORKSPACE}/${projectName}/target/
    
    ;;
esac

 

 

标签:回滚,部署,projectName,Choices,WORKSPACE,path,Jenkins,echo,backup
From: https://www.cnblogs.com/scfssq/p/17460826.html

相关文章

  • 如何在centos7部署网站
    如何在centos7部署网站1.买服务器推荐阿里云试用三个月。2.安装数据库,Java,nginxjava安装教程https://www.youtube.com/watch?v=90-0dRxs1fs&ab_channel=LiquidWebmysql安装教程https://www.bilibili.com/video/BV1qS4y1h77S/nginx安装yuminstallnginx其他注意事项:修......
  • MariaDB Galera Cluster 部署
    MariaDBGaleraCluster部署介绍MariaDB作为MySQL的一个分支,在开源项目中已经广泛使用,例如openstack,所以,为了保证服务的高可用性,同时提高系统的负载能力,集群部署是必不可少的。1、MariaDBGaleraCluster介绍GaleraCluster是由第三方公司Codership所研发的一套免费开源的集......
  • Jenkins构建时间变量
    在jenkins的内置环境变量中,没有job的构建时间变量,要获取job的构建时间,可以安装BuildTimestampPlugin并使用 ${BUILD_TIMESTAMP} 变量,具体步骤如下:步骤1:在jenkins插件管理中安装"BuildTimestampPlugin"插件。步骤2:在jenkins系统配置(ConfigureSystem)中勾选'BuildTimes......
  • 云原生之使用Docker部署Booksonic有声读物平台
    (云原生之使用Docker部署Booksonic有声读物平台)一、Booksonic介绍Booksonic是一个可以随时随地访问您拥有的有声读物的平台。二、检查docker状态[root@node~]#systemctlstatusdocker●docker.service-DockerApplicationContainerEngineLoaded:loaded(/usr/......
  • Maven部署构件至远程仓库
    我们知道,Maven仓库包括本地仓库和远程仓库,而远程仓库又包括中央仓库,私服,Jboss仓库和Java.net仓库等。私服,即私有的仓库服务器,它不仅可以降低中央仓库负荷,节省外网带宽,还可以加速Maven构建,自己部署构件等,从而高效地使用Maven。对于私服,我们可以使用仓库管理软件来创建自己的私有仓......
  • ARM架构---Python环境部署
    ARM架构---Python环境部署编译方式百度下即可,在ARM服务器编译出来就可以用1、上传python37.tar.gz文件到服务器py环境是在ARM架构上编译好的,可以直接拿编译产物去运行#例如上传到/data/software/目录cd/data/software/#解压tar-xfpython37.tar.gz#做软链接......
  • Asp.Net Core 程序部署到Linux(centos)生产环境(二):docker部署
    运行环境照例,先亮环境;软件的话我这里假设你已经批准好了.netcore运行环境,未配置可以看我的这篇[linux(centos)搭建.netcore运行环境]腾讯云centos:7.2cpu:1核2G内存1M带宽docker:18.06.1-ce安装docker安装其实很简单,就不重复说了,请查看纯洁大神这篇文章准备你的.netcoreweb程......
  • ELK部署中_
    ELK_8.2.0安装及部署手册目录1安装环境31.1系统环境3安装环境系统环境操作系统:CentOS7软件环境基础软件ELK所需基础服务及版本信息,如下表所示:序号软件名称软件版本备注1jdkjdk-11.0.18 2elasticsearch8.2.0 3file......
  • Jenkins+Docker 一键自动化部署项目!【转】
    本文章实现最简单全面的Jenkins+docker+springboot一键自动部署项目,步骤齐全,少走坑路。环境:centos7+git(gitee)简述实现步骤:在docker安装jenkins,配置jenkins基本信息,利用Dockerfile和shell脚本实现项目自动拉取打包并运行。安装dockerdocker安装社区版本CE确保yum包更新......
  • docker desktop 安装部署及使用
    工作中没有使用过dockerdesktop,不过对docker还是比较了解的。参与的一个大数据管理平台的项目(linux环境),内部使用了docker+k8s技术,所以在测试中会经常使用docker命令来辅助查看一些大数据组件及实例的运行情况。和其他人交流的时候了解到了dockerdesktop软件,看很多公司招人的......