Jenkins系列教程九:使用Jenkins自动部署SpringBoot 且 支持版本回滚

环境说明:

准备条件:

一、新建一个自由风格项目

新建任务:tes-rollback
image.png

二、丢弃策略

在这里插入图片描述

三、配置参数化构建过程

3-1、添加选项参数

勾选 This project is parameterized -> 添加参数 -> Choice Parameter

在这里插入图片描述
按下图设置参数:
image.png

3-2、添加字符参数

添加参数 -> 选择 String Prameter
image.png
按下图设置参数:
image.png

四、源码管理

4-1、填写项目的svn地址

源码管理 -> 选中Subversion -> 填写项目的svn地址
注意:svn地址后面追加 @HEAD 将每次拉取最新的代码

在这里插入图片描述

4-2、输入svn用户名、密码

在这里插入图片描述

在这里插入图片描述

4-3、选择配置的用户

在这里插入图片描述

五、配置构建步骤

5-1、maven打包配置

选择调用顶层Maven目标
image.png

目标中填入打包命令:clean install -Dmaven.test.skip=true -Pdev
image.png
说明:-Pdev是因为我的项目区分环境,可不加

5-2、执行shell配置(备份)

构建中的 增加构建步骤 -> Execute shell
image.png

填入如下脚本:
image.png

case $Status in
  Deploy)
    echo "Status:$Status"
	path="${WORKSPACE}/bak/${BUILD_NUMBER}"
	if [ -d $path ];
	then
		echo "The files is aready exists "
	else
		mkdir -p $path
	fi
	\cp -f ${WORKSPACE}/target/*.jar $path
	echo "Completing"
	;;
  Rollback)
    echo "Status:$Status"
	echo "Version:$Version"
	cd ${WORKSPACE}/bak/$Version
	\cp -f *.jar $path ${WORKSPACE}/target
	;;
	;;
  *)
  exit
      ;;
esac

这样发布后以后,就会备份如下
image.png
image.png

5-3、定期删除备份脚本

项目备份不可能无限制备份,这样很快就会占满磁盘,所以我们必须有清除老旧备份的机制。此处配置一个脚本,每次发布都执行一次,判断备份数是否超过5个,如果超过,则删除老旧备份,只保留最新的5个。
再添加一个执行shell步骤,填入以下脚本,其中备份数量可以自行修改减小或加大
image.png

# 删除历史备份文件
ReservedNum=5  #保留文件数
FileDir=${WORKSPACE}/bak/
date=$(date "+%Y%m%d-%H%M%S")

cd $FileDir   #进入备份目录
FileNum=$(ls -l | grep '^d' | wc -l)   #当前有几个文件夹,即几个备份

while(( $FileNum > $ReservedNum))
do
    OldFile=$(ls -rt | head -1)         #获取最旧的那个备份文件夹
    echo  $date "Delete File:"$OldFile
    rm -rf $FileDir/$OldFile
    let "FileNum--"
done

六、构建后操作

image.png
image.png

七、项目部署服务器脚本

7-1、编写脚本

在服务器192.168.122.4上执行操作如下命令:

mkdir -p /root/Jenkins-in/
cd /root/Jenkins-in/
vi remit-channel.sh

脚本内容如下:

#!/bin/bash
DATE=$(date +%Y%m%d%H%M%S)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/data/jdk1.8.0_261
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR="/data/P4/p4-remit-channel"
JARFILE="p4-remit-channel-0.0.1-SNAPSHOT.jar"

if [ ! -d $DIR/backup ];then
   mkdir -p $DIR/backup
fi
cd $DIR

ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
mv -f $JARFILE backup/$JARFILE$DATE
mv -f /root/Jenkins-in/$JARFILE .

java -jar  -Xms512m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m $JARFILE > out.log &
if [ $? = 0 ];then
        sleep 30
        tail -n 50 out.log
fi

cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf

7-2、脚本可执行授权

chmod +x test-job.sh

八、发布

  • 回到项目主界面,点击Build with Parameters

image.png

  • 发布选择Deploy—>开始构建,即可开始发布。

image.png

  • 回滚选择Rollback—>输入回滚版本---->开始构建,版本号从构建历史中选择一个输入

image.png

九、参考

1、使用Jenkins自动部署SpringBoot项目:https://blog.csdn.net/zjh_746140129/article/details/80904876
2、Jenkins版本回滚:https://www.jianshu.com/p/af5fecaa8357

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值