温馨提示×

怎样迁移debian gitlab

小樊
47
2026-09-08 12:14:27
栏目: 智能运维

迁移 Debian 上的 GitLab 通常有两种常见场景:

  1. 同版本 / 跨版本迁移(备份恢复方式) ✅ 最推荐
  2. 整机迁移(服务器更换)

下面以 官方 Omnibus GitLab(Debian 包安装) 为例说明。


一、迁移前准备

1. 查看 GitLab 版本

sudo gitlab-rake gitlab:env:info

或

cat /opt/gitlab/version-manifest.txt

⚠️ 目标服务器 GitLab 版本必须 ≥ 源服务器版本


二、在源服务器备份

1. 创建备份

sudo gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

168neo123_2024_01_01_16.5.1_gitlab_backup.tar

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

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

不备份 gitlab-secrets.json 会导致:

  • CI/CD 变量无法解密
  • Runner 无法注册
  • 某些集成失效

三、传输备份到新服务器

scp /var/opt/gitlab/backups/*.tar user@new-server:/var/opt/gitlab/backups/
scp /backup/gitlab.rb.bak user@new-server:/etc/gitlab/gitlab.rb
scp /backup/gitlab-secrets.json.bak user@new-server:/etc/gitlab/gitlab-secrets.json

四、在新 Debian 服务器安装 GitLab

1. 安装同版本 GitLab

sudo apt update
sudo apt install gitlab-ee=16.5.1-ee.0

(或 gitlab-ce)

2. 恢复配置文件

sudo chown root:root /etc/gitlab/gitlab.rb
sudo chown root:root /etc/gitlab/gitlab-secrets.json

3. 重新配置

sudo gitlab-ctl reconfigure

五、恢复数据

1. 停止相关服务

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

2. 恢复备份

sudo gitlab-rake gitlab:backup:restore BACKUP=168neo123_2024_01_01_16.5.1

⚠️ 不要带 .tar 后缀

3. 启动 GitLab

sudo gitlab-ctl start

六、验证迁移

sudo gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面,确认:

  • 项目
  • 用户
  • CI/CD
  • Runner

七、常见问题

1. 版本不一致

先升级源服务器,再备份

2. 磁盘空间不足

备份至少需要 当前数据 2 倍空间

3. Docker 版 GitLab

需要用:

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

八、最简流程总结

源:备份 → 拷贝 backup + rb + secrets
目标:装同版本 → 放文件 → reconfigure → 恢复

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

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

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

0 踩