私有化gitlab版本升级步骤(以版本12.9.0为例)
将 GitLab 12.9.0(Omnibus 安装)升级到最新版本需遵循逐步升级路径(不可跨多个大版本直接升级),以避免数据损坏。以下是详细步骤:
一、升级前准备(必须执行)
1. 备份所有数据(核心!)
# 1. 备份 GitLab 数据(含仓库、数据库、配置等)
sudo gitlab-rake gitlab:backup:create
# 备份文件会生成在 /var/opt/gitlab/backups/,格式:[时间戳]_gitlab_backup.tar# 2. 备份配置文件(防止升级后配置丢失)
sudo cp -r /etc/gitlab /etc/gitlab_backup_$(date +%F)
- 建议将备份文件复制到服务器外的安全存储(如本地电脑)。
2. 确认当前版本和安装方式
# 确认版本(应为 12.9.0)
sudo gitlab-rake gitlab:env:info | grep "GitLab version"# 确认是 Omnibus 安装(应有输出)
which gitlab-ctl
3. 检查系统资源
最新版 GitLab 建议:内存 ≥ 4GB(推荐 8GB+),磁盘 ≥ 20GB 空闲,避免升级中因资源不足失败。
二、升级路径(12.9.0 → 最新版本)
GitLab 官方规中,跨大版本升级需按以下路径逐步进行(以最新版 16.11.5 为例):12.9.0 → 12.10.14 → 13.12.15 → 14.10.5 → 15.11.10 → 16.11.5
步骤 1:升级到 12.10.14(同大版本最新)
# 1. 安装 12.10.14 版本(社区版 CE)
sudo yum install -y gitlab-ce-12.10.14# 2. 重新配置 GitLab(自动处理数据库迁移)
sudo gitlab-ctl reconfigure# 3. 检查服务状态(确保所有组件正常运行)
sudo gitlab-ctl status# 4. 验证版本(应为 12.10.14)
sudo gitlab-rake gitlab:env:info | grep "GitLab version"
步骤 2:升级到 13.12.15
# 1. 安装 13.12.15
sudo yum install -y gitlab-ce-13.12.15# 2. 重新配置
sudo gitlab-ctl reconfigure# 3. 检查状态(若有错误,查看日志:sudo gitlab-ctl tail)
sudo gitlab-ctl status# 4. 验证版本
sudo gitlab-rake gitlab:env:info | grep "GitLab version"
步骤 3:升级到 14.10.5
sudo yum install -y gitlab-ce-14.10.5
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status
# 验证版本
步骤 4:升级到 15.11.10
sudo yum install -y gitlab-ce-15.11.10
sudo gitlab-ctl reconfigure
sudo gitlab-ctl status
# 验证版本
步骤 5:升级到最新版本(以 16.11.5 为例,可替换为最新版)
# 1. 先更新仓库源(确保获取最新包)
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash# 2. 安装最新版(或指定具体版本,如 gitlab-ce-16.11.5)
sudo yum install -y gitlab-ce # 自动安装最新版# 3. 重新配置
sudo gitlab-ctl reconfigure# 4. 检查状态
sudo gitlab-ctl status
三、升级后验证
-
访问 GitLab 网页:登录 GitLab 控制台,确认项目、用户、CI/CD 配置等数据完整。
-
验证核心功能:
- 提交代码触发流水线,确认 Runner 正常工作。
- 检查仓库克隆、分支创建等基础操作是否正常。
-
查看日志(无报错):
sudo gitlab-ctl tail # 实时查看日志,按 Ctrl+C 退出
四、回滚方案(若升级失败)
若升级后服务异常,用备份回滚:
# 1. 停止服务
sudo gitlab-ctl stop# 2. 恢复数据(替换 [时间戳] 为备份文件的时间戳)
sudo gitlab-rake gitlab:backup:restore BACKUP=[时间戳]# 3. 恢复配置文件
sudo rm -rf /etc/gitlab
sudo cp -r /etc/gitlab_backup_xxxx-xx-xx /etc/gitlab# 4. 重启服务
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
注意事项
-
版本号获取:最新版本号可在 GitLab 官方下载页 查看,替换命令中的版本号即可。
-
网络问题:若下载慢,可配置国内镜像(如清华大学镜像),参考 GitLab 镜像配置。
-
Runner 兼容:升级 GitLab 后,建议将 Runner 也升级到最新版:
-
时间窗口:每步升级约需 5-10 分钟(视数据量),建议在业务低峰期操作,并提前通知用户。
sudo gitlab-runner stop
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
sudo chmod +x /usr/local/bin/gitlab-runner
sudo gitlab-runner start
按以上步骤逐步升级,可安全将 GitLab 从 12.9.0 升级到最新版本,同时保留所有数据和自动化部署配置。