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

相关推荐
mit6.82433 分钟前
[Redis#0] iredis: linux上redis超好用的环境配置
linux·redis·后端
陌小呆^O^41 分钟前
Cmakelist.txt之Linux-redis配置
linux·运维·redis
ernesto_ji1 小时前
Linux中,防火墙基本操作指令
linux·运维·网络
恒辉信达1 小时前
hhdb数据库介绍(9-30)
服务器·数据库·mysql
丶Darling.2 小时前
MIT 6.S081 | 操作系统 | Lab1: Xv6 and Unix utilities
linux·服务器·c语言·操作系统·unix·lab·mit 6.s081
Burfitt.Lee2 小时前
Linux:confluence8.5.9的部署(下载+安装+pojie)离线部署全流程 遇到的问题
linux·运维·服务器
vvw&2 小时前
使用 Nginx 在 Ubuntu 22.04 上安装 LibreNMS 开源网络监控系统
linux·运维·服务器·nginx·ubuntu·github·librenms
运维&陈同学2 小时前
【zookeeper02】消息队列与微服务之zookeeper单机部署
linux·服务器·分布式·微服务·zookeeper·云原生·消息队列·云计算
java1234_小锋3 小时前
详细描述一下Elasticsearch搜索的过程?
大数据·elasticsearch·jenkins