温馨提示×

如何迁移Debian的GitLab

小樊
37
2026-07-18 13:27:48
栏目: 智能运维

迁移 Debian 上的 GitLab 通常有两种常见场景:
1️⃣ 同机或跨机迁移(保留数据)
2️⃣ 版本升级 + 迁移

下面以 官方 Omnibus GitLab 为例,给你一套最稳妥、可回滚的迁移方案。


一、迁移前准备(强烈建议)

1. 确认 GitLab 安装方式

dpkg -l | grep gitlab
  • gitlab-ee / gitlab-ce ✅ Omnibus(推荐)
  • 源码安装 ❌(迁移方式不同)

2. 查看当前版本

gitlab-rake gitlab:env:info

3. 备份(最关键)

gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1234567890_2026_01_21_gitlab_backup.tar

这个文件 + /etc/gitlab + /var/opt/gitlab 是完整迁移的核心


二、迁移步骤(推荐做法)

✅ 方案一:整机迁移(最安全)

1️⃣ 旧服务器操作

# 停止 GitLab
gitlab-ctl stop

# 打包配置和数据
tar -czvf gitlab-full-backup.tar.gz \
  /etc/gitlab \
  /var/opt/gitlab

拷贝到新服务器:

scp gitlab-full-backup.tar.gz gitlab_backup.tar new-server:/root/

2️⃣ 新服务器安装 同版本 GitLab

⚠️ 版本必须一致,否则可能失败

apt-get update
apt-get install -y gitlab-ee   # 或 gitlab-ce

安装后先不要初始化配置。


3️⃣ 恢复数据

# 解压
tar -xzvf gitlab-full-backup.tar.gz -C /

# 恢复备份
gitlab-ctl reconfigure
gitlab-ctl stop

# 恢复数据库和仓库
gitlab-rake gitlab:backup:restore BACKUP=1234567890_2026_01_21

4️⃣ 启动并验证

gitlab-ctl reconfigure
gitlab-ctl start
gitlab-rake gitlab:check

三、只迁移仓库和用户(轻量迁移)

适合:

  • 不想迁移 CI Runner
  • 不保留历史日志

步骤:

  1. 旧服务器:
gitlab-rake gitlab:backup:create
  1. 新服务器:
  • 安装同版本 GitLab
  • 拷贝 backup 文件
  • 恢复:
gitlab-rake gitlab:backup:restore

四、跨 Debian 版本迁移注意事项

项目 建议
OS 版本 Debian 11 → 12 可行
GitLab 版本 先升级到目标系统支持版本
PostgreSQL Omnibus 自带,不建议手动迁移
端口 确认 80 / 443 / 22

五、常见问题

❓ 恢复后 502

gitlab-ctl reconfigure
gitlab-ctl restart

❓ 权限错误

chown -R git:git /var/opt/gitlab/git-data

❓ SSH Key 失效

  • 确认 /etc/gitlab/gitlab.rb 中:
gitlab_rails['gitlab_shell_ssh_port'] = 22

六、升级 + 迁移(推荐顺序)

先迁移同版本 → 再升级

升级路径示例:

14.x → 15.x → 16.x → 17.x

七、如果你愿意,我可以帮你:

  • ✅ 制定 你当前版本的迁移路线图
  • ✅ 检查 /etc/gitlab/gitlab.rb
  • ✅ 写 一键迁移脚本
  • ✅ 处理 Docker / Kubernetes GitLab

你可以直接贴出:

gitlab-rake gitlab:env:info
cat /etc/os-release

0