文档 · 2021年6月22日 0

Gitlab跨版本升级

环境介绍:

Centos7.2

Gitlab版本: gitlab-ce-10.1.0

需要联网:使用yum 主动解决依赖问题。

目的:

目前gitlab最新稳定版为 gitlab-ce-13.9.7  本次将 gitlab-ce-10.1.0 升级到最新版本

升级准备:

因为是跨版本升级,所以不可以直接升级至最新的13.9.7版本需要按照小版本进行逐步升级。

遵循的原则就是先升级到当前版本小版本的最后一个版本:然后升级大版本的第一个版本,以此类推。具体参考官方给出的升级版本信息。如下:

所以我们需要准备的安装包的版本依次如下:

10.1.0 –> 10.8.7 –> 11.3.4 –> 11.11.8 –> 12.0.12 –> 12.10.6 –> 13.0.0 –> 13.9.7

版本说明:10.1.0

10表示大版本

1表示小版本

0表示补丁包版本

官方参考升级版本信息:参考 Upgrading GitLab | GitLab

备份恢复

升级之前最主要是是要备份数据,以便在升级过程出现问题时不会丢失数据:

备份:

#停止gitlab的外部访问

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
#备份
gitlab-rake gitlab:backup:create

备份文件默认存储在 /var/opt/gitlab/backups 可以在配置文件中修改

gitlab_rails[‘backup_path’] = “/var/opt/gitlab/backups”

恢复:

同样先停止外部访问,然后进行恢复

先重命名一下之前的备份文件,只保留时间戳部分,否则可能会报错。

#1.修改包名
mv 1624266558_2021_06_21_12.10.6_gitlab_backup.tar 1624266558.tar
#退出backups目录后执行恢复
gitlab-rake gitlab:backup:restore BACKUP=1624258202.tar

#2.如果上一步报错找不到可用的文件可以将包名恢复成原来的名字,退出backups目录,执行恢复,
但是不要写_gitlab_backup.tar

gitlab-rake gitlab:backup:restore BACKUP=1624266558_2021_06_21_12.10.6

就可以恢复了。

升级

下载对应版本的安装包:下载地址

升级前确认已经做好备份

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
yum install -y gitlab-ce-10.8.7-ce.0.el7.x86_64.rpm

gitlab-ctl restart

每次升级完restart 检查组件是否运行正常,然后登录页面验证是否正常。依次安装对应版本的安装包即可。

可能出现的问题

1.升级时出现

Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... pg_dump: [archiver (db)] connection to database "gitlabhq_production" failed

这是因为postgresql 没有启动 启动一下即可。

gitlab默认带的postgresql 启动方式如下:

gitlab-ctl start postgresql

2.访问页面出现502

通常是因为端口被占用导致的,关闭占用的端口或者修改正在使用的端口即可。如果不知道那些端口占用了可以重启一下,以下是正规的解决办法:

#编辑配置文件
vim /etc/gitlab/gitlab.rb

gitlab_workhorse['auth_backend'] = "http://localhost:8081"    #端口随便写,这不是web的访问端口只是内部调用使用的

unicorn['port'] = 8081   #端口同上 

#使配置生效

gitlab-ctl reconfigure

#重启gitlab

gitlab-ctl restart

重启后等待一两分钟,再试一下web访问是否正常。如果多次出现可以反复的修改或者注释以上两行配置。达到端口变更的目的。

如有问题欢迎留言

打赏