上几章我讲到了自动集成和部署
Linux:Jenkins全自动持续集成持续部署(4)
当我们觉得这个页面不行的时候,需要进行版本回滚,回滚方法我这里准备了两种
两者都是使用shell语句进行回滚
第一种是脚本调用git命令进行回滚
第二种是脚本调用
我现在环境是根据前几章的ci&cd搭建起来的,gitlab项目直接就部署好了
方法1
这里的参数你可以跟着我填上等会你就知道是做什么的了
#!/bin/bash
case $status in
huigun) #注意大小写
echo "-----本次操作为回滚,版本号为$version-----"
git reset --hard $version
echo "-----回滚完成,打包中-----"
;;
*)
exit
esac
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.5:/var/www/html
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.6:/var/www/html
在构建的时候直接填写gitlab上的历史数值就可以进行回滚
方法2
和方法1一样只不过就是脚本变了
#!/bin/bash
jenkins_workspace="/var/lib/jenkins/workspace"
jenkins_workspace_bak="$jenkins_workspace/bak"
if [ -d "$jenkins_workspace_bak" ]; then
echo "备份目录已经创建"
else
mkdir -p "$jenkins_workspace_bak"
echo "创建备份目录"
fi
#!/bin/bash
# ${JOB_NAME} 拉取下来的项目名称
# ${BUILD_NUMBER} 构建按次数
jenkins_workspace="/var/lib/jenkins/workspace"
jenkins_workspace_bak="$jenkins_workspace/bak"
case $status in
fabu)
cd ${jenkins_workspace}/${JOB_NAME}
tar cfz ${JOB_NAME}-${BUILD_NUMBER}.tar.gz ./*
mv ${JOB_NAME}-${BUILD_NUMBER}.tar.gz ${jenkins_workspace_bak}
;;
huigun)
rm -rf /var/lib/jenkins/workspace/${JOB_NAME}/*
cd $jenkins_workspace_bak
tar xf ${JOB_NAME}-${version}.tar.gz -C /var/lib/jenkins/workspace/${JOB_NAME}/
;;
esac
#!/bin/bash
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.5:/var/www/html
scp /var/lib/jenkins/workspace/${JOB_NAME}/* root@192.168.6.6:/var/www/html
rm -rf /var/lib/jenkins/workspace/${JOB_NAME}
构建的时候和刚刚的一样