温馨提示×

GitLab如何迁移到Linux

小樊
36
2026-07-14 10:41:55
栏目: 智能运维

GitLab 迁移到 Linux 一般是指把 GitLab 从一台服务器(或系统)迁移到另一台 Linux 服务器,或者从 非 Linux(如 Windows / Docker / 旧 Linux)迁移到新的 Linux 系统。下面我按最常见、最安全的方式给你一个完整流程。


一、迁移前必须确认的事项

1️⃣ 版本一致(非常重要)

源 GitLab 和目标 GitLab 版本必须一致

gitlab-rake gitlab:env:info

如果版本不一致:

  • 先升级旧服务器
  • 或先安装相同版本再迁移

2️⃣ 迁移方式选择

场景 推荐方式
整机迁移 ✅ 备份 + 恢复(最推荐)
只迁移部分仓库 导出 / 导入
Docker → Linux 备份 + 恢复
跨 Linux 发行版 备份 + 恢复

二、推荐方案:备份 + 恢复(标准做法)

✅ 第一步:在旧服务器上创建备份

sudo gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1234567890_2026_01_21_gitlab_backup.tar

✅ 第二步:拷贝备份文件到新 Linux 服务器

scp /var/opt/gitlab/backups/*.tar user@new_server:/var/opt/gitlab/backups/

确保权限正确:

sudo chown git.git /var/opt/gitlab/backups/*.tar

✅ 第三步:在新 Linux 上安装相同版本 GitLab

示例(Ubuntu / Debian):

sudo apt update
sudo apt install -y curl openssh-server ca-certificates
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://gitlab.example.com" apt install gitlab-ee

⚠️ 版本必须和旧服务器一致!


✅ 第四步:恢复备份

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

恢复:

sudo gitlab-rake gitlab:backup:restore BACKUP=1234567890_2026_01_21

恢复完成后:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

✅ 第五步:验证

sudo gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面,确认:

  • 仓库
  • 用户
  • CI/CD
  • 配置

三、迁移 GitLab 配置文件(非常重要)

备份文件 不包含 以下配置:

/etc/gitlab/gitlab.rb
/etc/gitlab/ssl/

✅ 建议一起迁移:

scp -r /etc/gitlab root@new_server:/etc/

然后在新服务器执行:

sudo gitlab-ctl reconfigure

四、如果是 Docker GitLab 迁移到 Linux

Docker 备份

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

拷贝

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

在新 Linux 安装 GitLab

按上面的 备份恢复流程 操作即可。


五、常见问题

❓ 迁移后 Git 仓库地址变了?

修改:

external_url 'http://new-domain.com'

然后:

gitlab-ctl reconfigure

❓ 迁移后 CI Runner 失效?

  • 重新注册 Runner
  • 或迁移 /etc/gitlab-runner/config.toml

❓ 数据太大怎么办?

  • 迁移前清理:
gitlab-rake gitlab:cleanup
  • 使用 rsync 传输大文件

六、总结(最简流程)

旧服务器:
1. 备份 gitlab
2. 拷贝 backup + gitlab.rb

新 Linux:
3. 安装相同版本 GitLab
4. 恢复备份
5. 启动并验证

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

  • 当前 GitLab 版本
  • 是否是 Docker
  • 源系统和目标 Linux 发行版

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

0