Jenkins-Git Parameter 插件实现指定版本的发布和回滚

在上一篇文章的基础设置上进行

1. 机器准备

|---------|------------|
| 开发 | 10.0.0.204 |
| gitlab | 10.0.0.201 |
| jenkins | 10.0.0.200 |
| web | 10.0.0.202 |

2. 开发主机

在开发机器上修改不同版本的前端页面,并打上标签

第一次修改

root@dev wheel\]#**vim index.html** \[root@dev wheel\]#**git commit -am "1.0"** \[master 6914b4e\] 1.0 1 file changed, 1 insertion(+), 1 deletion(-) \[root@dev wheel\]#**git tag v1.0** \[root@dev wheel\]#**git push --all** 第二次修改 \[root@dev wheel\]#**vim index.html** \[root@dev wheel\]#**git commit -am "2.0"** \[master 6914b4e\] 2.0 1 file changed, 1 insertion(+), 1 deletion(-) \[root@dev wheel\]#**git tag v2.0** \[root@dev wheel\]#**git push --all** 第三次修改 \[root@dev wheel\]#**vim index.html** \[root@dev wheel\]#**git commit -am "3.0"** \[master 6914b4e\] 3.0 1 file changed, 1 insertion(+), 1 deletion(-) \[root@dev wheel\]#**git tag v3.0** \[root@dev wheel\]#**git push --all** 上传所有标签 \[root@dev wheel\]#**git push --tags** 总共 0(差异 0),复用 0(差异 0),包复用 0 To gitlab.lly.org:devops/wheel.git \* \[new tag\] v1.0 -\> v1.0 \* \[new tag\] v2.0 -\> v2.0 \* \[new tag\] v3.0 -\> v3.0

3. jenkins 机器

项目发布和回滚一体的脚本

root@jenkins scripts\]#**vim wheel-gitlab-deploy-rollback.sh** HOST_LIST=" 10.0.0.202" APP=wheel VERSION=\`date +%F_%s\` DATA_PATH=/srv #DATA_PATH=/srv/${APP}-${VERSION} APP_PATH=/var/www/html deploy(){ for host in $HOST_LIST;do ssh root@$host "mkdir -p $DATA_PATH/${APP}-${VERSION} \&\& rm -rf ${APP_PATH}" scp -r \* root@$host:$DATA_PATH/${APP}-${VERSION} ssh root@$host ln -s $DATA_PATH/${APP}-${VERSION} ${APP_PATH} done } rollback() { for i in ${HOST_LIST};do CURRENT_VERISION=$(ssh root@$i "readlink $APP_PATH") CURRENT_VERISION=$(basename ${CURRENT_VERISION}) echo ${CURRENT_VERISION} PRE_VERSION=$(ssh root@$i "ls -1 ${DATA_PATH} \| grep -B1 ${CURRENT_VERISION}\|head -n1 ") echo $PRE_VERSION ssh root@$i "rm -f ${APP_PATH}\&\& ln -sv ${DATA_PATH}/${PRE_VERSION} ${APP_PATH}" done } case $1 in deploy) deploy ;; rollback) rollback ;; \*) echo "Usage: $0 deploy\|rollback" ;; esac

4. jenkins 工具

jenkins 工具上添加任务(提前下载 git parameter 插件)

根据脚本中的两个函数填写选项参数,并设为变量


选择 git 参数,自动生成标签


源码管理中,URL 和凭证对应选择(若是 http,则使用用户名密码认证凭证,若是 git,则使用key认证凭证)


构建步骤选择 excute shell ,填写脚本绝对路径,后面跟上参数变量,运行时可指定函数


执行任务时,则可选择指定发布或是回滚,以及可指定版本

5. web 端验证

使用web 主机 ip 验证前端页面是否按照指定的版本显示

相关推荐
开开心心_Every6 小时前
免费轻量电子书阅读器,多系统记笔记听书
linux·运维·服务器·神经网络·安全·机器学习·pdf
存储服务专家StorageExpert7 小时前
DELL EMC isilon/PowerScale 存储的健康检查方法
linux·运维·服务器·netapp存储·emc存储
熊文豪7 小时前
当系统在后台偷偷“记账“:KES 性能观测体系深度解析
linux·运维·服务器·数据库
哦豁灬7 小时前
ThinkPad X220 安装 Arch Linux 完美指南
linux·服务器·thinkpad·arch linux
自动化智库7 小时前
库卡机器人定义全局变量
linux·运维·机器人
Yiyi_Coding7 小时前
BUG列表:如何定位线上 OOM ?
java·linux·bug
杨云龙UP8 小时前
MySQL慢查询日志暴涨导致磁盘告警:slow query log膨胀至397G的生产故障排查:清理、参数优化
linux·运维·服务器·数据库·mysql
chQHk57BN8 小时前
DeepFlow Agent 故障排查指南:注册失败、协议解析、资源识别与配置方式
linux·运维·服务器
LSL666_8 小时前
Linux命令
linux·运维·服务器
SQVIoMPLe8 小时前
[拆解LangChain执行引擎]以Actor模型的视角来看Pregel
服务器·数据库·langchain