温馨提示×

CentOS如何迁移GitLab数据

小樊
49
2026-08-18 17:00:54
栏目: 智能运维

CentOS 上迁移 GitLab 数据,常见且官方推荐的方式是使用 GitLab 备份与恢复机制。下面按最稳妥、最常用的流程给你说明,适用于 GitLab CE / EE(Omnibus 安装)


一、迁移前确认(非常重要)

1️⃣ 确认 GitLab 版本一致

源服务器和目标服务器 GitLab 版本必须一致

gitlab-rake gitlab:env:info

如果不一致,需要先升级/降级到相同版本。


2️⃣ 确认安装方式

适用于 Omnibus GitLab(最常见):

rpm -qa | grep gitlab

如果你是用 Docker 或源码安装,流程会不同。


二、在源服务器(旧 CentOS)备份 GitLab

1️⃣ 停止部分服务(可选但推荐)

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

只停必要服务,不一定要全停


2️⃣ 创建备份

gitlab-rake gitlab:backup:create

✅ 成功后备份文件在:

/var/opt/gitlab/backups/

文件名类似:

1690000000_2024_01_01_gitlab_backup.tar

3️⃣ 备份配置文件(非常重要)

GitLab 备份 不包含 配置文件和 SSH key:

cp /etc/gitlab/gitlab.rb /root/gitlab.rb.bak
cp -r /etc/gitlab/ssl /root/ssl.bak
cp /etc/gitlab/gitlab-secrets.json /root/gitlab-secrets.json.bak

三、将备份文件传输到新服务器

1️⃣ 传输备份文件

scp /var/opt/gitlab/backups/1690000000_2024_01_01_gitlab_backup.tar root@新服务器IP:/var/opt/gitlab/backups/

2️⃣ 传输配置文件

scp /root/gitlab.rb.bak root@新服务器IP:/etc/gitlab/gitlab.rb
scp /root/gitlab-secrets.json.bak root@新服务器IP:/etc/gitlab/gitlab-secrets.json

四、在新服务器(新 CentOS)恢复 GitLab

1️⃣ 安装 相同版本 GitLab

yum install -y curl policycoreutils-python openssh-server
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | bash
yum install gitlab-ee-版本号

或 CE:

yum install gitlab-ce-版本号

2️⃣ 恢复配置文件

cp /root/gitlab.rb.bak /etc/gitlab/gitlab.rb
cp /root/gitlab-secrets.json.bak /etc/gitlab/gitlab-secrets.json

然后重新配置:

gitlab-ctl reconfigure

3️⃣ 停止服务

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

4️⃣ 恢复备份

gitlab-rake gitlab:backup:restore BACKUP=1690000000_2024_01_01

⚠️ 注意:

  • 只写 时间戳部分
  • 不要加 _gitlab_backup.tar

5️⃣ 启动 GitLab

gitlab-ctl start

五、验证迁移是否成功

gitlab-rake gitlab:check SANITIZE=true

浏览器访问 GitLab,确认:

  • 仓库
  • 用户
  • CI/CD
  • SSH Key
  • Runner

六、常见问题

❌ 版本不一致

Backup is corrupted or version mismatch

✅ 解决:统一版本


❌ 权限问题

chown git:git /var/opt/gitlab/backups/*

❌ SSH 无法登录

确认:

  • /etc/gitlab/gitlab-secrets.json 已恢复
  • gitlab-ctl reconfigure

七、常见迁移场景建议

场景 建议
同版本迁移 ✅ 官方备份恢复
跨版本 ⚠️ 先升级再迁移
整机迁移 ✅ 备份 + 配置文件
Docker → CentOS ❌ 不建议,需导出数据

如果你愿意,可以告诉我:

  • ✅ GitLab 版本
  • ✅ CentOS 7 还是 8 / Rocky / Alma
  • ✅ Omnibus / Docker / 源码

我可以给你精确命令,避免踩坑。

0