温馨提示×

Linux GitLab怎么迁移

小樊
41
2026-08-24 22:39:23
栏目: 智能运维

GitLab 迁移分同版本迁移跨版本/跨服务器迁移,下面按最常用、最稳妥的方式给你一个完整流程。如果你能补充:

  • GitLab 版本(如 15.11 / 16.x)
  • 操作系统(CentOS / Ubuntu / Rocky)
  • 是否同服务器 or 跨服务器

我可以给你更精确到命令的方案。


一、推荐方式(官方标准):GitLab Backup 迁移

✅ 适用于 跨服务器 / 跨系统 / 升级迁移

1️⃣ 在 旧服务器 创建备份

gitlab-backup create

默认生成文件:

/var/opt/gitlab/backups/XXXXXXXX_gitlab_backup.tar

⚠️ 不包含配置文件(需单独备份)


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

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

3️⃣ 拷贝到新服务器

scp /var/opt/gitlab/backups/*_gitlab_backup.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

⚠️ 版本必须一致

查看旧版本:

gitlab-rake gitlab:env:info

安装示例(Ubuntu):

apt-get install gitlab-ee=16.3.5-ee.0

5️⃣ 恢复备份

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

恢复:

gitlab-backup restore BACKUP=XXXXXXXX

恢复配置:

gitlab-ctl reconfigure
gitlab-ctl restart

6️⃣ 检查完整性

gitlab-rake gitlab:check SANITIZE=true

二、Docker GitLab 迁移(常见)

迁移流程

  1. 拷贝:
    • gitlab/config
    • gitlab/logs
    • gitlab/data
  2. 新服务器启动 同版本容器
  3. 启动即可(无需 backup)

三、仅迁移仓库(不推荐)

适用于:

  • 只要代码
  • 不要用户 / CI / issues

方式:

git clone --mirror
git push --mirror

四、迁移注意事项(非常重要)

版本必须一致或先升级
✅ 新服务器 磁盘空间 ≥ 旧服务器
gitlab-secrets.json 必须恢复(否则 CI / Runner 失效)
✅ 迁移后:

  • 重置 Runner Token
  • 检查 Webhook / LDAP / SMTP

五、我可以帮你定制方案

你可以直接回复我:

  1. GitLab 版本
  2. 是否 Docker
  3. 是否跨服务器
  4. 是否升级版本

我可以给你 一步步命令级迁移方案

0