温馨提示×

如何迁移linux gitlab

小樊
50
2026-09-13 14:15:35
栏目: 智能运维

下面按常见场景给你一份 Linux 下 GitLab 迁移的完整思路与操作步骤。先确认你是哪一种迁移:


一、先明确迁移类型

  1. 同版本迁移(最推荐)
    • 旧服务器 → 新服务器
    • GitLab 版本一致
  2. 跨版本迁移
    • 旧版本 → 新版本
  3. 容器化迁移(Docker GitLab)
  4. 仅仓库数据迁移(不用备份)

下面以 最常用:同版本整机迁移(Omnibus GitLab) 为例。


二、迁移前准备

1. 查看版本(新旧必须一致)

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

2. 新服务器准备

  • 同操作系统(CentOS / Ubuntu)
  • 同 GitLab 版本
  • 足够磁盘空间

三、旧服务器备份

1. 创建备份

gitlab-rake gitlab:backup:create

生成文件:

/var/opt/gitlab/backups/xxxx_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/

四、新服务器恢复

1. 安装同版本 GitLab

# Ubuntu 示例
apt install gitlab-ee=版本号

2. 停止部分服务

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

3. 恢复备份

gitlab-rake gitlab:backup:restore BACKUP=备份文件名前缀

4. 重启 GitLab

gitlab-ctl reconfigure
gitlab-ctl restart

五、验证

gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面,确认:

  • 项目
  • 用户
  • CI/CD
  • SSH Key

六、其他迁移方式(简要)

✅ Docker GitLab

  • 拷贝:
    • gitlab.rb
    • gitlab-secrets.json
    • backups
  • 挂载相同 volume

✅ 仅仓库迁移

git clone --mirror
git push --mirror

(不适合带 Issue / CI)

✅ GitLab 导出导入(项目级)

Settings → General → Export

七、常见坑

❗ 版本不一致会恢复失败
❗ 忘记 gitlab-secrets.json → CI/Token 失效
❗ 防火墙 / SSH 端口未开


如果你告诉我:

  • GitLab 安装方式(Omnibus / Docker)
  • 操作系统
  • 是否跨版本

我可以给你定制化迁移命令

0