gitlab版本升级

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:本文章gitLab部署采用的是docker容器方式,之前文章详细介绍过部署全流程:

运用场景:由于之前使用gitLab版本(14.6.1)比较旧,计划在本机上进行一个的版本更新,并同时保证原有数据不丢失的状况。最终升级版本为(15.1.6)。


一、版本升级

1.1、升级路线

首先Gitlab升级是不能跨大版本升级的,必须根据官方升级路径来操作。
采用官方提供的一个解释说明,官方连接:(https://docs.gitlab.com/ee/update/index.html#upgrade-paths)
在这里插入图片描述

点击后,进入如下页面

在这里插入图片描述

以下就是官方提供的指定升级路径,不能越级,只能一个一个下载镜像并进行启动容器

在这里插入图片描述

1.2、升级前后检查

在每一次升级前后都需要检查的内容,以确保升级过程中节点的正常操作。

# 状态检查
gitlab-rake gitlab:check
# 数据加密检查
gitlab-rake gitlab:doctor:secrets

查看当前版本
在这里插入图片描述

1.3、数据的备份

GitLab 12.2 或更高版本:

  1. 进入容器: docker exec -it (容器id) bash
  2. 备份指令:gitlab-backup create
  3. 检查: ls /home/git/data/backups/
    备份文件命名一般都是 时间戳+_gitlab_backup.tar

需要注意的是,该命令只是备份了数据, 配置文件、ssl证书等内容是没有备份的,需要手动备份。

建议:在最初部署容器的同时,将相关目录关在出来,如果是同一机器中进行版本升级,则无需进行数据的迁移,备份数据只是为防止万一。所需挂载目录在之前文章有过详细解释。

1.4、升级

按照官方提供的升级路线进行逐一版本升级,建议在升级前,在机器内存允许的情况下,将升级路线中版本镜像进行全部下载,避免出现升级过程中等待下载镜像过程,单个镜像普遍1G以上,会消耗大量的等待时间。

docker run gitlab-ce=14.6.7-ce.0
docker run gitlab-ce=14.7.7-ce.0
docker run gitlab-ce=14.8.6-ce.0
....
docker run gitlab-ce=15.0.5-ce.0
docker run gitlab-ce=15.1.6-ce.0

以上代码仅供参考,因为根据实际场景都需要指定暴漏端口、挂载目录等操作,可参考之前文章的启动命令,仅修改版本即可

docker run \
 -itd  \
 -p 9980:80 \
 -p 9922:22 \
 -v /home/gitlab/etc:/etc/gitlab  \
 -v /home/gitlab/log:/var/log/gitlab \
 -v /home/gitlab/opt:/var/opt/gitlab \
 --restart always \
 --privileged=true \
 --name gitlab \
 gitlab/gitlab-ce:14.6.7-ce.0

每一次的版本升级都要检查日志,确保正常后,再执行之后操作

docker logs -f (容器id)

二、数据迁移

只能将备份还原到与创建备份时完全相同的 GitLab 版本和类型 (CE/EE)。
新服务器安装好Gitlab之后,按照下面的顺序执行命令

# Stop the processes that are connected to the database
# docker exec -it <name of container> gitlab-ctl stop puma
docker exec -it (容器名称) gitlab-ctl stop puma
#docker exec -it <name of container> gitlab-ctl stop sidekiq
docker exec -it (容器名称) gitlab-ctl stop sidekiq

# Verify that the processes are all down before continuing
# docker exec -it <name of container> gitlab-ctl status
 docker exec -it (容器名称)  gitlab-ctl status

# Run the restore. NOTE: "_gitlab_backup.tar" is omitted from the name
# docker exec -it <name of container> gitlab-backup restore BACKUP=11493107454_2018_04_25_10.6.4-ce
docker exec -it (容器名称)   gitlab-backup restore BACKUP=1697632970_2023_10_18_16.1.5

# Restart the GitLab container
# docker restart <name of container>
docker restart (容器名称)  

# Check GitLab
# docker exec -it <name of container> gitlab-rake gitlab:check SANITIZE=true
docker exec -it (容器名称)  gitlab-rake gitlab:check SANITIZE=true

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值