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 验证前端页面是否按照指定的版本显示

相关推荐
运维行者_9 小时前
企业无线网络监控的挑战与智能化演进趋势
大数据·运维·服务器·网络·数据库
三84410 小时前
文件查找/文件压缩/解压缩
linux·运维·服务器
小猪写代码10 小时前
Linux 管道(Pipeline)作业
linux·运维·服务器
桌面运维家10 小时前
如何用半缓存云桌面将服务器硬盘容量扩展至本地终端?
运维·服务器·缓存
Jurio.10 小时前
Codex App SSH 远程开发教程:本地连接远程服务器项目
服务器·ssh·远程工作·codex
会周易的程序员12 小时前
microLog 的本地日志读取接口 log_reader — 本地日志文件读取工具开发指南
linux·物联网·架构·嵌入式·日志·iot·aiot
yoothey12 小时前
报废审批流规则引擎设计——责任链模式完整实现
linux·开发语言·bash
2501_9259633813 小时前
外设的常见问题
linux
l1t13 小时前
在linux和windows中解决duckdb 1.6dev版本输出执行计划报错问题
linux·运维·数据库·windows·duckdb
tryCbest13 小时前
Python 文件操作
服务器·python