温馨提示×

怎样迁移debian gitlab仓库

小樊
38
2026-09-17 15:48:58
栏目: 智能运维

在 Debian 上“迁移 GitLab 仓库”通常有几类场景,下面按最常见、最安全的方式给你讲清楚,你可以对照自己的需求选。


一、整机迁移 GitLab(同版本 / 升级迁移,推荐)

如果你是 Debian 上用 Omnibus 安装的 GitLab,这是最标准的方法。

1️⃣ 原服务器备份

sudo gitlab-rake gitlab:backup:create

生成的文件在:

/var/opt/gitlab/backups/

2️⃣ 拷贝备份文件到新服务器

scp /var/opt/gitlab/backups/xxxx_gitlab_backup.tar 新服务器:/var/opt/gitlab/backups/

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

# 例如原版本 16.5.1
sudo EXTERNAL_URL="https://gitlab.example.com" apt-get install gitlab-ee=16.5.1-ce.0

4️⃣ 恢复备份

sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq

sudo gitlab-rake gitlab:backup:restore BACKUP=xxxx

5️⃣ 重启服务

sudo gitlab-ctl restart

✅ 用户、仓库、CI、Issues 全部迁移


二、仅迁移 Git 仓库(不迁用户/配置)

如果你只是想把代码仓库搬走:

方法 1:git clone --mirror

git clone --mirror git@old-gitlab:group/project.git
cd project.git
git push --mirror git@new-gitlab:group/project.git

✅ 分支、tag、所有引用都会迁移


三、Docker 版 GitLab 迁移

1️⃣ 备份

docker exec -t gitlab gitlab-rake gitlab:backup:create

2️⃣ 拷贝

docker cp gitlab:/var/opt/gitlab/backups ./backups

3️⃣ 新机器恢复

docker cp backups/xxx.tar gitlab:/var/opt/gitlab/backups/
docker exec -t gitlab gitlab-rake gitlab:backup:restore BACKUP=xxx

四、跨大版本迁移注意

⚠️ 不能直接跨大版本恢复(如 15 → 17)

正确顺序:

15.x → 16.x → 17.x

每一步都要先恢复再升级。


五、常见坑

❌ 忘记迁移 /etc/gitlab/gitlab.rb
✅ 要一起拷贝并 gitlab-ctl reconfigure

❌ 权限不对
✅ 备份文件权限应为 git:git


六、你可以告诉我

为了给你更精确的方案,我可以帮你确认:

  1. GitLab 安装方式(Omnibus / Docker / 源码)
  2. 是否同版本
  3. 是否要迁移用户和 CI
  4. Debian 版本

我可以按你的环境写一步一步命令。

0 踩