Bootstrap

关于gitlab13.12.15升级到16.0.0的记录

背景

        内网有一套gitlab13.12.15运行在ubuntu16.04上,由于开发团队的需求,适配新版开发工具,现需要升级gitlab到15及以上,本次为停机升级

准备工作

        vbox虚拟机7.0.4(与原虚拟机保持一致),Ubuntu22.04系统镜像文件(适配最新gitlab16,否则无法升级),gitlab各个版本安装包(CE社区版,其他版本非本文章内容)

前提知识点

        官方要求升级不能直接跨版本,需要按以下顺序:

        升级规范13.12.15 ——> 14.0.12 ——> 14.3.6 ——> 14.9.5 ——> 14.10.5 ——> 15.0.5 ——> 15.1.6——> 15.4.6——> 15.11.13——> 16.0.8——> 16.1.5——> 16.2.8——> 16.3.6——> 16.7.z——>  latest 16.Y.Z.

开始记录

1.安装系统

        安装vbox和Ubuntu不做说明,自行百度,不然太占用文章内容

2.安装gitlab13.12.15

        进入正题,先在Ubuntu22.04上安装gitlab13.12.15,并进行测试

        2.1修改下载源、刷新源、升级源,自己运行一次

        2.2安装gitlab依赖,注意邮件邮件配置,选择Internet那一项)

        sudo apt-get install curl openssh-server ca-certificates postfix file git build-essential

        2.3开始安装dpkg -i gitlab-ce_13.12.15-ce.0_amd64.deb(下载地址如下,其他的版本自行搜索)https://packages.gitlab.com/app/gitlab/gitlab-ce/search?dist=ubuntu&filter=debs&page=1&q=1icon-default.png?t=N7T8https://packages.gitlab.com/app/gitlab/gitlab-ce/search?dist=ubuntu&filter=debs&page=1&q=1        2.4配置sudo gitlab-ctl reconfigure

        2.5启动查看gitlab-ctl start

        2.6查看状态gitlab-ctl status

3.还原数据

        以上安装完成,且能访问后开始下一步动作,还原内网数据

        3.1上传最新备份文件和配置文件(/etc/gitlab/gitlab.rb和/etc/gitlab/gitlab-secrets.json)

        3.2修改postgresql设置:        

# 修改以下配置文件,修改端口监听地址,默认监控localhost,* 代表all

vim /var/opt/gitlab/postgresql/data/postgresql.conf

修改listen_addresses = '*'

# 修改以下配置文件,新增放行

vim /var/opt/gitlab/postgresql/data/pg_hba.conf

# 新增以下两行

local   all         all                               trust

host    all         all                               127.0.0.1/32 trust

# 重启一次

gitlab-ctl restart

# 修改权限

$ su - gitlab-psql

$ /opt/gitlab/embedded/bin/psql -h 127.0.0.1 gitlabhq_production

gitlabhq_production=# ALTER USER gitlab WITH SUPERUSER;

ALTER ROLE

# 退出

gitlabhq_production=# \q

$ exit

        3.3停止服务

gitlab-ctl stop puma && gitlab-ctl stop sidekiq && gitlab-ctl stop nginx && gitlab-ctl status

        3.4还原

gitlab-rake gitlab:backup:restore BACKUP=1703700494_2023_12_28_13.12.15

        3.5配置sudo gitlab-ctl reconfigure

        3.6启动查看gitlab-ctl start

        3.7查看状态gitlab-ctl status

        3.8测试(我这里为了减少错误,vbox文件备份了一次,40多G花了点时间)

4.升级开始

        4.1停止必要的服务

gitlab-ctl stop puma && gitlab-ctl stop sidekiq && gitlab-ctl stop nginx && gitlab-ctl status

        4.2安装下一个版本

 sudo dpkg -i gitlab-ce_14.0.12-ce.0_amd64.deb  

        4.3启动测试(每次还原都要重新配置和重启一次)

gitlab-ctl reconfigure &&gitlab-ctl restart

        4.4版本检查

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

        4.5检查服务

        gitlab-rake gitlab:check SANITIZE=true

        systemctl status gitlab-runsvdir.service

        4.6测试网站是否正常

        4.7如此重复操作3.2+4.X的内容,直到升级到你需要的版本(3.2最好操作一次,防止出现5.1问题)

        4.8替换线上的vbox文件即可

5.常见问题

        5.1如果还原提示sql报错参考以下链接,但是本记录中已经操作过,你们按照我的操作应该不会出现

Restoring PostgreSQL database gitlabhq_production ... ERROR:  must be owner of extension pg_trgm
ERROR:  must be owner of extension btree_gist
ERROR:  must be owner of extension btree_gist
ERROR:  must be owner of extension pg_trgm

https://blog.csdn.net/Hu_wen/article/details/125889489icon-default.png?t=N7T8https://blog.csdn.net/Hu_wen/article/details/125889489       

        5.2升级14.0.12到14.3.6时会报错

rails_migration[gitlab-rails] (gitlab::database_migrations line 51)

        这是需要使用以下检测命令

sudo gitlab-rake db:migrate

        运行一次后会出现以下内容

        你们根据自己出现的语句执行,执行完后在运行上面的检测命令,如此反复操作,我这里执行了5次左右,不再出现。

        最后重新配置和启动即可(目前只有这个位置阶段出现问题,14.3.6-16.0.0没有出现,先做个标记)

gitlab-ctl reconfigure &&gitlab-ctl restart

;