jenkins部署多台服务器springboot+vue项目做发布和备份回滚(自创的方法,个人认为最简单易懂)

后端部署

  1. 此教程为个人经验分享,转载请注明出处!!!
  2. 发布和备份回滚思路,先配置Choice parameter选项,发布项目时先把jar包备份在jenkins工作目录的一个备份的文件夹(服务器上手动新建),在备份时,利用$BUILD_NUMBER取得构建版本号,加到文件末尾,方便之后回滚选择jar包。
  3. 选择回滚的时候,先打开备份文件夹,再用scp命令发送到部署服务的服务器,当然,不会配置两台服务器之间免密码登陆的,可以百度下,A服务器访问B服务器,把A的公钥放到B服务authorized_keys文件夹下就行了,如果还是不行,把etc/ssh/sshd_config 配置文件的,StrictModes 属性 yes改为no
  4. 配置git分支和发布回滚选项,以及一个string参数version,下面回滚会用到,(version其实就是$BUILD_NUMBER的值)

在这里插入图片描述
在这里插入图片描述
5. 话不多说,直接上脚本,(脚本其实很简单,就相当于在linux里敲命令)
在这里插入图片描述


case $status in
Deploy)
    echo "======status:$status========="
	echo $PATH
	echo "===========进入jenkins工作目录jar包所在文件夹==========="
	cd /root/.jenkins/workspace/xinhui_stg_deploy/xh-system/target
  	ls
## 用scp命令发动到远程服务器的部署目录下,opr是我服务器的子用户,你们可以用root
	echo "开始上传jar包到测试服务器"
	scp xh-system-1.0.10-RELEASE.jar  opr@101.108.147.65:/xinhui/nws/stg/xh-system-1.0.10-RELEASE.jar

	echo "================将jar包备份到backup_app文件夹========================="
## 备份在jenkins的工作目录下的backup_app文件夹下,方便之后回滚,$BUILD_NUMBER为构建id,详情可以看jenkins环境变量
	cp xh-system-1.0.10-RELEASE.jar  /root/.jenkins/workspace/backup_app/xh-system-1.0.10-RELEASE.jar.$BUILD_NUMBER
   
      
    echo "deploy done!"
    ;;
Rollback)
    echo "======status:$status========"
    echo "======build_id:$version======="
    
    backup_path="${JENKINS_HOME}/workspace/backup_app/"
   	cd $backup_path
    ls
   	echo "==============把想要回滚的jar包发送到远程测试服务器==================="
    scp xh-system-1.0.10-RELEASE.jar.$version  opr@101.108.147.65:/xinhui/nws/stg/xh-system-1.0.10-RELEASE.jar
    
    echo "roll_back done!"
    ;;
*)
esac

6. 构建后操作,配置连接服务器,上面的不用填了,直接在命令框,敲脚本
在这里插入图片描述

### stop脚本
PID=$(ps -ef | grep xh-system-1.0.10-RELEASE.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo app is already stopped
else
echo kill $PID
kill $PID
fi

## start脚本
nohup java -jar xh-system-1.0.10-RELEASE.jar --spring.profiles.active=stg &

7. 上效果图
在这里插入图片描述

备注我这只把重要部分写出来了,其他一些简单的jenkins流程和配置,去稍微百度一下就懂了!如果配置完,构建失败,一定不要慌,仔细去看构建日志,我遇到的所有问题,都是在日志里看报错发现并且解决的!

前端vue项目部署

1,git和发布回滚选项同上java部署步骤,直接上关键的编译打包上传步骤
在这里插入图片描述

case $status in
Deploy)
    echo "======status:$status========="
echo $PATH
echo "========编译打包开始,刷新下环境变量文件========="
source /etc/profile
echo "====查看npm版本,看npm命令是否失效===="
npm -v 
npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
npm install 
npm run stg 
## 打开jenkins工作目录项目文件夹
cd /root/.jenkins/workspace/xinhui_stg_web/
ls
## 将打包好的文件夹,压缩,方便后续scp传输
echo "================将dist文件夹打成压缩包========================="
tar czvf /root/.jenkins/workspace/xinhui_stg_web/dist.tar.gz  dist
echo "========开始上传dist文件到测试服==opr是我服务器的子用户,也可用root==========="
scp  dist.tar.gz  opr@101.101.101.101:/xinhui/nws/stg/dist.tar.gz
echo "==================上传完成===================="
## 可以先手动在jenkins工作目录下新建一个backup_web文件夹,省的在脚本里写判断,再去建文件夹=====
echo "======移动压缩包到备份文件夹========================="
mv dist.tar.gz  /root/.jenkins/workspace/backup_web/dist.tar.gz.$BUILD_NUMBER      
  echo "deploy done!"
    ;;
Rollback)
    echo "======status:$status========"
    echo "======build_id:$version======="
    backup_path="${JENKINS_HOME}/workspace/backup_web/"
   	cd $backup_path
   	echo "==============把想要回滚的jar包发送到测试服务器==================="
    scp  dist.tar.gz.$version  opr@101.101.101.101:/xinhui/nws/stg/dist.tar.gz
    echo "roll_back done!"
    ;;
*)
esac
    

2,构建后再连接测试服,在测试服上解压文件
jenkins截图
大家可能百度的大部分博客,上面三个选项都要填,第一个是jenkins的jar包相对目录,第二个去掉前缀,第三个需要部署的服务器的项目目录,在我这啥也不用填,直接上脚本就ok了!

多台服务器的部署

1,上面的都是单台服务器的,需要部署多台服务器,在scp命令那里,多发送一次就行了,然后再在
构建后操作那里,加一个ssh连接,copy上一份的脚本就行,so easy!
2,我试了网上很多备份回滚的教程,都没成功,就自己琢磨出这一个,如果遇到什么问题,欢迎大家提问!
特别提示:如果你也是用的linux子用户操作,记住需要把所有需要用到的文件夹及文件加上权限,
命令如下: chown -R opr:opr /dir
解释:(opr:opr (用户-用户组) /dir 文件夹或者文件名)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值