GitLab在CentOS上的升级需遵循**“备份→停止服务→更新包→重新配置→重启验证”**的核心流程,以下是详细步骤及注意事项:
备份所有关键数据
升级前必须完整备份GitLab的数据库、项目仓库、配置文件,避免数据丢失。使用GitLab自带命令创建备份:
sudo gitlab-rake gitlab:backup:create
备份文件默认存储在/var/opt/gitlab/backups目录,文件名格式为时间戳_版本号.gitlab_backup.tar(如1716892800_16.11.5.gitlab_backup.tar)。
确认当前版本与升级路径
运行以下命令查看当前GitLab版本:
sudo gitlab-rake gitlab:env:info
访问GitLab官方升级路径文档(如Omnibus升级指南),确认当前版本到目标版本的合法升级路径(例如:14.0.x → 14.1.x → 14.2.x → 15.0.x,需逐步升级,不可跨大版本直接升级)。
检查系统环境
sudo yum update -y);policycoreutils、openssh-server、postfix,具体依赖参考GitLab官方文档);停止GitLab相关服务
升级前需停止所有GitLab服务,避免文件锁定或数据损坏:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
下载并安装新版本GitLab
gitlab-ce-16.11.5-ce.0.el7.x86_64.rpm);wget下载RPM包(替换为实际链接):wget https://packages.gitlab.com/gitlab/gitlab-ce/el/7/gitlab-ce-16.11.5-ce.0.el7.x86_64.rpm
rpm命令安装(或yum localinstall):sudo rpm -Uvh gitlab-ce-16.11.5-ce.0.el7.x86_64.rpm
重新配置并重启GitLab
reconfigure命令应用新配置(会自动执行数据库迁移等操作):sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
验证升级结果
sudo gitlab-rake gitlab:env:info
http://your-server-ip),检查界面显示的版本号是否与目标版本一致。检查后台迁移状态
若升级包含数据库迁移,运行以下命令确认迁移是否完成:
sudo gitlab-rake db:migrate:status
若存在未完成的迁移,需等待其完成(或手动触发)。
清理旧版本缓存
升级后建议清理GitLab缓存,优化性能:
sudo gitlab-ctl clean
监控服务状态
升级后持续监控GitLab服务运行状态,确保无异常:
sudo gitlab-ctl status
reconfigure时报错(如Chef进程占用),可通过ps aux | grep gitlab查找并终止相关进程(kill -9 <PID>);sudo gitlab-rake db:migrate手动执行迁移;sudo yum install -y <缺失依赖>安装对应依赖。以上步骤适用于CentOS系统下通过Omnibus方式安装的GitLab(社区版/企业版)。若使用Docker或源安装,升级流程会有所不同(如Docker版本只需替换镜像并重启容器),需参考GitLab官方对应文档。