Gitlab版本升级方案-13.x到17.x

当前版本:13.7.3

注意:谨慎操作,操作前记得备份,服务器打镜像

原则:先升到 1x.0的最后一个版本,再升级到1x.x大版本

版本升级路径规划:13.7.3-->13.12.15-->14.0.12-->14.10.5-->15.0.5-->15.11.13-->16.0.8-->16.3.7-->16.7.8-->16.11.5-->17.0.3

相关包下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/

一、升级前准备

1、完整备份(必须执行)

停止可能导致数据变更的服务

gitlab-ctl stop sidekiq

gitlab-ctl stop puma

创建完整备份

gitlab-backup create

Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data

and are not included in this backup. You will need these files to restore a backup.

Please back them up manually.

这里的警告说的是gitlab.rb 和 gitlab-secrets.json这两个文件不在备份包中,但恢复备份时必须使用,所以下一步要手动备份配置文件

备份配置文件(重要!)

tar -czf /root/gitlab-config-backup-$(date +%Y%m%d_%H%M%S).tar.gz /etc/gitlab /var/opt/gitlab/backups/

重启服务

gitlab-ctl start

验证备份文件

ls -lh /var/opt/gitlab/backups/

2、记录当前环境信息

记录当前版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION > /root/gitlab-version-current.txt

cat /root/gitlab-version-current.txt

记录组件版本

gitlab-rake gitlab:env:info > /root/gitlab-env-info.txt

cat /root/gitlab-env-info.txt

记录数据库版本

gitlab-psql -d gitlabhq_production -c "SELECT version();" > /root/postgresql-version.txt

cat /root/postgresql-version.txt

记录所有项目列表(用于升级后验证)

gitlab-rails runner "Project.all.each { |p| puts "#{p.id}: #{p.full_path}" }" > /root/projects-list.txt

cat /root/projects-list.txt

安装升级(保留所有配置和数据)

yum localinstall -y gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm

重新配置(自动执行数据库迁移)

gitlab-ctl reconfigure

重启所有服务

gitlab-ctl restart

二、开始升级

升级到13.12.15

安装升级(保留所有配置和数据)

yum localinstall -y gitlab-ce-13.12.15-ce.0.el7.x86_64.rpm

重新配置(自动执行数据库迁移)

gitlab-ctl reconfigure

重启所有服务

gitlab-ctl restart

验证升级13.12.15

检查版本

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

应该显示: 13.12.15

检查服务状态

gitlab-ctl status

查看 Sidekiq 队列状态

gitlab-rails runner "puts Sidekiq::Queue.all.map { |q| "#{q.name}: #{q.size}" }"

查看 Sidekiq 进程是否运行

gitlab-rails runner "puts Sidekiq::ProcessSet.new.size"

通过浏览器访问验证

检查数据库迁移是否完成

gitlab-rails runner "puts ActiveRecord::Migrator.current_version"

升级到14.0.12

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-14.0.12-ce.0.el7.x86_64.rpm

验证升级14.0.12

检查版本

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

应该显示: 14.0.12

升级到14.10.5

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-14.10.5-ce.0.el7.x86_64.rpm

验证升级14.10.5

检查版本

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

应该显示: 14.10.5

升级到15.0.5

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-15.0.5-ce.0.el7.x86_64.rpm

验证升级15.0.5

检查版本

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

应该显示: 15.0.5

升级到15.11.13

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-15.11.13-ce.0.el7.x86_64.rpm

验证升级15.11.13

检查版本

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

应该显示: 15.11.13

升级到16.0.8

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-16.0.8-ce.0.el7.x86_64.rpm

验证升级16.0.8

检查版本

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

应该显示: 16.0.8

升级到16.3.7

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-16.3.7-ce.0.el7.x86_64.rpm

验证升级16.3.7

检查版本

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

应该显示: 16.3.7

升级到16.7.8

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-16.7.8-ce.0.el7.x86_64.rpm

验证升级16.7.8

检查版本

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

应该显示: 16.7.8

升级到16.11.5

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-16.11.5-ce.0.el7.x86_64.rpm

验证升级16.11.5

检查版本

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

应该显示: 16.11.5

升级到17.0.3

安装升级(保留所有配置和数据)

yum -y localinstall gitlab-ce-17.0.3-ce.0.el7.x86_64.rpm

验证升级17.0.3

检查版本

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

应该显示: 17.0.3

相关推荐
_可乐无糖6 小时前
GitLab CI 脚本之 dependencies 和 needs
ci/cd·gitlab
Fan_5582 天前
4核8G云服务器部署GitLab内存耗尽解决方案
gitlab
洋就在江州2 天前
gitlab-cicd 离线集成——springboot-cicd (非docker形式,shell形式)
java·spring boot·后端·ci/cd·gitlab·gitlab-runner
成为你的宁宁3 天前
【Ubuntu 18.04安装Gitlab】
ubuntu·gitlab
长春的KAKA3 天前
GitLab 项目页面报 500 错误的完整修复记录:PostgreSQL 数据库损坏、统计表缺失及数据库迁移
数据库·postgresql·gitlab
蓝胖的四次元口袋3 天前
GitLab知识梳理
gitlab
极小狐12 天前
CI 作业里 kubectl 连不上集群?用 Kubernetes Agent 打通部署链路的 7 个步骤
ci/cd·kubernetes·gitlab·devops·k8s部署
Zhou14113612 天前
Git_02_GitLab协作与CI_CD
git·ci/cd·gitlab
白帽攻防录12 天前
SRC 挖洞:GitLab GraphQL 指令绕过深度复盘,CVE-2026-19478 未授权删项目怎么打穿代码托管平台
网络·网络安全·gitlab·graphql
daemon.qiang22 天前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件