下面以常见场景给你一个完整、可验证的 CentOS GitLab 迁移方案。
我将按 “同机升级 / 跨机迁移 / 版本一致 / 版本升级” 四种情况分别说明,你可以直接对号入座。
GitLab 迁移最安全的方式 = 同版本备份 + 同版本恢复
强烈建议:
gitlab-rake gitlab:env:info
重点关注:
gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
文件名类似:
1690000000_2024_01_01_gitlab_backup.tar
scp /var/opt/gitlab/backups/*.tar root@new_server:/var/opt/gitlab/backups/
⚠️ 版本必须一致!
# 示例:CentOS 7
yum install -y curl policycoreutils-python
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
yum install gitlab-ce-16.7.2
查看可用版本:
yum list gitlab-ce --showduplicates
gitlab-ctl reconfigure
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1690000000_2024_01_01
恢复完成后:
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
✅ 成功标志:
/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json
必须拷贝!否则:
gitlab-ctl reconfigure
gitlab-ctl restart
✅ 推荐路径:
CentOS 7 GitLab → Rocky Linux 8/9 GitLab
如果你必须升级 GitLab:
当前版本 → 逐级升级 → 目标版本
例如:
13.x → 14.x → 15.x → 16.x
⚠️ 禁止直接跨 2 个大版本
docker cp gitlab-data:/var/opt/gitlab/backups .
恢复:
docker run --rm \
-v gitlab-data:/var/opt/gitlab \
gitlab/gitlab-ce gitlab-backup restore
gitlab-ctl status
gitlab-ctl restart
chown git:git /var/opt/gitlab/backups/*.tar
确认:
/etc/gitlab/gitlab-secrets.json
是否一致
你可以直接告诉我:
我可以给你 精确到命令级别的迁移方案 ✅