温馨提示×

centos gitlab如何迁移

小樊
46
2026-08-03 15:43:40
栏目: 智能运维

下面给你一套从 CentOS 服务器迁移 GitLab 的完整方案,适用于 GitLab CE / EE(Omnibus 安装),这是最常见、最稳妥的方式。


一、迁移前准备

1️⃣ 确认 GitLab 版本(非常重要)

新旧服务器 GitLab 版本必须一致,否则可能升级失败。

gitlab-rake gitlab:env:info
# 或
rpm -qa | grep gitlab

✅ 如果版本不一致,先在新服务器安装同版本 GitLab,再迁移。


2️⃣ 新服务器准备

  • 相同版本的 GitLab
  • 相同(或更大)磁盘空间
  • CentOS 7 / 8(建议 7,GitLab 官方支持较好)

二、迁移方式(推荐 ✅ 官方方式)

✅ 方式一:使用 GitLab 官方备份(最推荐)


三、在旧服务器执行备份

1️⃣ 停止部分服务(减少数据变化)

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

如果你不怕数据变化,也可以不停止(不推荐生产环境)


2️⃣ 创建备份

gitlab-backup create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1690000000_2024_01_01_gitlab_backup.tar

3️⃣ 拷贝备份到新服务器

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

四、新服务器恢复 GitLab

1️⃣ 安装相同版本 GitLab

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

或指定版本:

yum install gitlab-ce-16.7.2-ce.0.el7.x86_64 -y

2️⃣ 修改配置文件(如 IP / 域名)

vi /etc/gitlab/gitlab.rb

常见修改:

external_url 'http://gitlab.example.com'

然后:

gitlab-ctl reconfigure

3️⃣ 恢复备份

chown git.git /var/opt/gitlab/backups/1690000000_2024_01_01_gitlab_backup.tar
gitlab-backup restore BACKUP=1690000000_2024_01_01

⚠️ 注意:不要加 .tar


4️⃣ 恢复 GitLab 配置(非常重要)

旧服务器拷贝:

/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json

新服务器覆盖后执行:

gitlab-ctl reconfigure
gitlab-ctl restart

五、验证迁移是否成功

gitlab-rake gitlab:check SANITIZE=true

浏览器访问 GitLab,确认:

  • 仓库
  • 用户
  • CI/CD
  • Runner
  • 权限

六、迁移 Runner(如有)

1️⃣ 旧服务器

cat /etc/gitlab-runner/config.toml

2️⃣ 新服务器

gitlab-runner register

七、常见问题

❌ 版本不一致

backup is from a different GitLab version

✅ 解决办法:安装相同版本


❌ 权限问题

chown -R git.git /var/opt/gitlab/backups

❌ 502 错误

gitlab-ctl status
gitlab-ctl restart

八、迁移方式对比

方式 适用场景 推荐
官方 backup 标准迁移 ✅✅✅
rsync 整个目录 同版本、同系统
Docker 迁移 容器环境
单独仓库迁移 少量项目

九、我可以继续帮你

你可以直接告诉我:

  1. GitLab 版本
  2. CentOS 版本
  3. 是否生产环境
  4. 是否有 Runner / CI

我可以给你 精确到命令的迁移方案

0