温馨提示×

怎样迁移linux gitlab

小樊
41
2026-09-04 14:38:36
栏目: 智能运维

迁移 Linux 上的 GitLab 通常分为 同版本迁移跨版本/跨服务器迁移 两种场景。下面我按最常见、最安全的官方推荐方式来讲,并补充其他可选方案。


一、最推荐方式:使用 GitLab 备份与恢复(官方方案)

适用于:

  • 更换服务器
  • 系统重装
  • 同版本或升级版本迁移

1️⃣ 原服务器上创建备份

sudo gitlab-rake gitlab:backup:create

备份文件默认在:

/var/opt/gitlab/backups/

文件名类似:

1690000000_2023_07_22_15.11.0_gitlab_backup.tar

⚠️ 该备份 不包含 配置文件(如 gitlab.rb、ssl)


2️⃣ 拷贝备份文件和配置文件

scp /var/opt/gitlab/backups/*.tar user@new-server:/var/opt/gitlab/backups/

scp /etc/gitlab/gitlab.rb user@new-server:/etc/gitlab/
scp -r /etc/gitlab/ssl user@new-server:/etc/gitlab/   # 如有

3️⃣ 新服务器安装相同(或更高)版本 GitLab

# 示例(Ubuntu)
sudo apt install gitlab-ee=15.11.0-ee.0

确认版本一致:

sudo gitlab-rake gitlab:env:info

4️⃣ 恢复备份

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

sudo gitlab-rake gitlab:backup:restore BACKUP=1690000000_2023_07_22_15.11.0

恢复完成后:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

二、整机迁移(物理机 / 虚拟机 / 云服务器)

适用于:

  • 云服务器更换实例
  • 虚拟机迁移

方法

  • 直接克隆磁盘
  • 使用 dd / rsync / 云镜像
  • 保持 hostname、IP 不变

✅ 优点:零配置
❌ 缺点:版本锁定,不灵活


三、仅迁移仓库(轻量方式)

如果只是代码和 Issues:

方式 1:Git 裸仓库迁移

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

方式 2:GitLab Export / Import

  • 项目 → Settings → Export
  • 新实例 → New Project → Import

⚠️ 不包含 CI、Webhook、部分配置


四、Docker 版 GitLab 迁移

备份

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

迁移

  • 拷贝 /var/opt/gitlab
  • 拷贝 /etc/gitlab
  • 启动相同 image 版本

五、常见坑提醒 ⚠️

问题 说明
版本不一致 必须 ≥ 原版本
跳过大文件 可加 SKIP=uploads
恢复卡住 检查磁盘空间
SSH key 丢失 需重新配置

六、迁移前检查清单 ✅

  • [ ] GitLab 版本
  • [ ] 数据盘空间
  • [ ] 备份完整性
  • [ ] 域名 / IP 规划
  • [ ] CI Runner 重连

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

  • GitLab 版本
  • 是否 Docker
  • 是否跨大版本
  • 是否更换域名

我可以给你一步一步的定制迁移命令

0