升级前需要参考官方指引,逐版本升级
官方指引
https://docs.gitlab.com/ee/update/index.html#upgrade-paths
8.11.Z -> 8.12.0 -> 8.17.7 -> 9.5.10 -> 10.8.7 -> 11.11.8 -> -> 12.1.17 -> 12.10.14 -> -> 13.1.11 -> 13.8.8 -> 13.12.15 -> 14.0.12 -> 14.3.6 -> 14.9.5 -> 14.10.Z -> 15.0.Z -> 15.4.0 -> latest 15.Y.Z12.0.1213.0.14
官方发布版本
https://about.gitlab.com/releases/categories/releases
查看备份目录
shell cat /etc/gitlab/gitlab.rb |grep backup_path
执行备份
shell gitlab-rake gitlab:backup:create
手工备份两个敏感文件
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb
查看当前版本
shell cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
安装指定版本
shell yum install gitlab-ce-15.3.2
跨大版本升级时,可能会出现数据结构变更,执行以下命令行
shell sudo chmod 0755 /var/opt/gitlab/postgresql
shell sudo gitlab-rake db:migrate
shell sudo gitlab-ctl restart postgresql
升级完成后,执行以下命令行
shell sudo gitlab-ctl reconfigure
shell sudo gitlab-ctl restart
访问页面显示 502 时,可尝试以下命令行解决
shell sudo systemctl restart gitlab-runsvdir
shell sudo gitlab-ctl restart sidekiq
shell sudo gitlab-ctl hup unicorn
备份还原
需要注意的是,还原的前提条件是 GitLab 版本要跟备份时的版本完全一致
执行以下命令行,BACKUP 为备份文件去掉 _gitlab_backup.tar 后的名称,如文件名为 1662359186_2022_09_05_14.6.3_gitlab_backup.tar,取前面的 1662359186_2022_09_05_14.6.3
gitlab-rake gitlab:backup:restore BACKUP=1662359186_2022_09_05_14.6.3
如果还原过程中出现权限错误,请于备份目录下执行下面命令
Unpacking backup ... tar: 1662359186_2022_09_05_14.6.3_gitlab_backup.tar: Cannot open: Permission denied
tar: Error is not recoverable: exiting now
unpacking backup failed
chmod 644 *
最后记得别忘了还原两个敏感文件
完成后重启 GitLab 即可
shell sudo gitlab-ctl reconfigure
shell sudo gitlab-ctl restart