升级前必须完整备份GitLab所有关键数据,包括数据库、配置文件及项目代码。使用GitLab自带工具创建备份:
sudo gitlab-rake gitlab:backup:create
备份文件默认存储在/var/opt/gitlab/backups目录,建议将备份文件复制到异地或其他存储设备。
通过以下命令查看当前GitLab版本,明确升级路径(如从14.9升级至15.0):
sudo gitlab-rake gitlab:env:info
或登录GitLab管理界面,在“帮助”页面查看版本信息。
访问GitLab官方网站或升级工具(如gitlab-release-checker),根据当前版本选择兼容的目标版本。注意:GitLab升级需遵循版本递增规则(如14.x→15.x,不可跨大版本直接升级)。
确保系统已安装必要依赖(以CentOS 7为例):
sudo yum install -y policycoreutils openssh-server openssh-clients postfix
依赖缺失可能导致升级失败或服务异常。
升级前需停止所有GitLab相关服务,避免数据冲突:
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-ctl stop nginx
根据安装方式选择对应步骤:
若通过Omnibus包安装,可直接通过yum更新:
sudo yum update gitlab-ce
若通过RPM包手动安装,需先下载目标版本RPM包(如从GitLab官网或清华镜像站),校验完整性后执行:
sudo rpm -Uvh gitlab-ce-<version>.rpm # 替换<version>为目标版本号
更新完成后,重新配置GitLab以应用新设置:
sudo gitlab-ctl reconfigure
然后重启服务:
sudo gitlab-ctl restart
通过命令或界面确认版本是否更新:
sudo gitlab-rake gitlab:check # 检查配置与数据库状态
# 或
sudo gitlab-rake gitlab:env:info # 查看当前版本
访问GitLab管理界面(如http://<服务器IP>),登录后查看右下角版本号。
若重新配置时提示“Chef client进程占用”,可通过以下命令终止相关进程:
ps aux | grep gitlab # 查找gitlab相关进程
kill -9 <pid> # 终止指定进程(替换<pid>为实际进程ID)
若升级后出现500错误或数据库迁移未完成,可手动执行迁移:
sudo gitlab-rake db:migrate:status # 查看迁移状态
sudo gitlab-rake db:migrate # 执行未完成的迁移
若升级后配置异常,可恢复备份的配置文件(/etc/gitlab/gitlab.rb和/etc/gitlab/gitlab-secrets.json),然后重新配置:
sudo gitlab-ctl reconfigure