温馨提示×

linux下gitlab如何迁

小樊
40
2026-09-04 14:25:36
栏目: 智能运维

在 Linux 下迁移 GitLab 通常有以下几种常见场景,下面按最常用、最稳妥的方式给你说明(以 Omnibus GitLab 为例,适用于大多数自托管情况)。


一、同版本 GitLab 迁移(最推荐)

适用场景

  • 服务器更换
  • 磁盘/机房迁移
  • 系统重装但 GitLab 版本不变

步骤

1. 在旧服务器备份

gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1234567890_2026_01_21_gitlab_backup.tar

2. 备份配置文件(非常重要)

/etc/gitlab/gitlab.rb
/etc/gitlab/gitlab-secrets.json

3. 拷贝到新服务器

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

4. 新服务器安装同版本 GitLab

apt install gitlab-ee   # 或 gitlab-ce

确保版本一致:

gitlab-rake gitlab:env:info

5. 恢复备份

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

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

6. 重启 GitLab

gitlab-ctl reconfigure
gitlab-ctl restart

二、跨版本迁移(升级迁移)

注意

不能直接跨大版本恢复

正确做法

  1. 旧服务器备份
  2. 新服务器安装 旧版本 GitLab
  3. 恢复备份
  4. 逐级升级 GitLab
    14 → 15 → 16 → 17
    

三、Docker GitLab 迁移

如果是 Docker 部署:

备份

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

迁移

  • 拷贝 backups 目录
  • 拷贝 configdatalogs 挂载目录

四、只迁移代码(不含用户/Issue)

如果只是仓库:

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

五、常见问题

1. 恢复后 500 错误

gitlab-ctl reconfigure
gitlab-ctl restart

2. SSH Key 失效

确保:

/etc/gitlab/gitlab-secrets.json

已正确恢复

3. 版本不一致

一定会失败,必须版本一致


六、总结建议

最稳妥方案

同版本 + 官方 backup + 配置文件一起迁

如果你能告诉我:

  • GitLab 版本
  • 是否 Docker
  • 是否跨大版本

我可以给你精确命令

0