温馨提示×

debian gitlab怎么迁移

小樊
40
2026-09-23 18:47:02
栏目: 智能运维

在 Debian 上迁移 GitLab,常见有 同版本迁移 / 跨版本升级迁移 / 整机迁移 / 容器迁移 几种场景。下面给你一套最稳妥、官方推荐的做法(基于 Omnibus 安装)。


一、迁移前准备

1. 确认环境

在源服务器和目标服务器上执行:

cat /opt/gitlab/version-manifest.txt | head -1
# 或
gitlab-rake gitlab:env:info

✅ 强烈建议:源和目标 GitLab 版本一致
(大版本不一致容易出坑)


二、官方推荐方式:使用备份恢复(最常用)

1. 源服务器创建备份

gitlab-rake gitlab:backup:create

备份文件在:

/var/opt/gitlab/backups/xxxxxx_gitlab_backup.tar

不包含 gitlab.rb 和 gitlab-secrets.json


2. 拷贝关键配置文件

scp /etc/gitlab/gitlab.rb root@目标IP:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@目标IP:/etc/gitlab/
scp /var/opt/gitlab/backups/*.tar root@目标IP:/var/opt/gitlab/backups/

⚠️ gitlab-secrets.json 不拷贝会导致:

  • CI Secret
  • Runner Token
  • 加密变量失效

3. 目标服务器安装相同版本 GitLab

apt-get install gitlab-ee=版本号
# 或 gitlab-ce

安装后:

gitlab-ctl reconfigure

4. 停止相关服务

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

5. 恢复备份

gitlab-rake gitlab:backup:restore BACKUP=备份时间戳

按提示输入 yes


6. 启动 GitLab

gitlab-ctl start
gitlab-rake gitlab:check SANITIZE=true

三、整机 / 磁盘迁移(最快)

适用于:

  • 云服务器换机
  • 磁盘快照迁移

做法

  1. 关闭 GitLab
gitlab-ctl stop
  1. 拷贝整个目录:
/var/opt/gitlab
/etc/gitlab
/var/log/gitlab
  1. 目标机相同 Debian 版本 + 相同 GitLab 版本
  2. 启动
gitlab-ctl reconfigure
gitlab-ctl start

四、Docker GitLab 迁移

docker exec -t gitlab gitlab-backup create
docker cp gitlab:/var/opt/gitlab/backups ./backups

再在目标 Docker 恢复即可。


五、常见问题

❌ 版本不一致

解决:先升级源或目标到同版本

❌ 502

gitlab-ctl restart

❌ Runner 失效

重新注册 Runner


六、总结(推荐路线)

✅ 最稳妥:

同版本 + 备份恢复 + 拷贝 secrets

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

  • Debian 版本
  • GitLab CE / EE
  • 当前版本
  • 是否跨服务器 / 跨云

我可以给你精确命令。

0 踩