当前版本: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