温馨提示×

Debian怎么迁移GitLab

小樊
40
2026-08-17 13:23:17
栏目: 智能运维

在 Debian 上迁移 GitLab,常见有 同机迁移/升级跨服务器迁移 两种场景。下面按 最常用、最稳妥 的方式给你一个完整流程(适用于 Omnibus 版 GitLab)。


一、迁移前准备

1️⃣ 确认 GitLab 安装方式

sudo gitlab-rake gitlab:env:info

dpkg -l | grep gitlab

✅ 推荐:Omnibus GitLab(gitlab-ee / gitlab-ce)


2️⃣ 查看版本(非常重要)

cat /opt/gitlab/version-manifest.txt

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


3️⃣ 停止 GitLab 服务

sudo gitlab-ctl stop

二、备份 GitLab(源服务器)

1️⃣ 创建完整备份

sudo gitlab-backup create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1690000000_2024_01_01_gitlab_backup.tar

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

sudo tar czf /var/opt/gitlab/backups/gitlab-config.tar.gz \
  /etc/gitlab/gitlab.rb \
  /etc/gitlab/gitlab-secrets.json

⚠️ gitlab-secrets.json 必须一起迁移,否则 CI、Runner、加密数据会失效


三、传输备份到新服务器

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

四、新服务器安装 GitLab

1️⃣ 安装相同版本 GitLab(推荐)

添加 GitLab 源

curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab.gpg

echo "deb [signed-by=/usr/share/keyrings/gitlab.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/debian $(lsb_release -cs) main" \
| sudo tee /etc/apt/sources.list.d/gitlab_gitlab-ce.list

安装指定版本

sudo apt update
sudo apt install gitlab-ce=16.7.2-ce.0

(版本号需和源服务器一致)


五、恢复 GitLab(新服务器)

1️⃣ 恢复配置文件

sudo tar xzf /var/opt/gitlab/backups/gitlab-config.tar.gz -C /
sudo gitlab-ctl reconfigure

2️⃣ 恢复数据

sudo gitlab-backup restore BACKUP=1690000000_2024_01_01

只写时间戳部分,不要 .tar


3️⃣ 修复权限 & 重启

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

六、验证迁移是否成功

sudo gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面,确认:

  • 仓库
  • 用户
  • CI Runner
  • Issue / MR

七、常见问题

❌ 版本不一致

✅ 先升级源服务器,再迁移


❌ 502 / 500 错误

sudo gitlab-ctl status
sudo gitlab-ctl tail

❌ Runner 无法注册

确认:

/etc/gitlab/gitlab-secrets.json

已正确恢复


八、Docker / 源码版 GitLab?

如果你用的是:

  • ✅ Docker:用 volume + backup
  • ✅ 源码安装:流程不同(不推荐)

我可以给你 对应版本的迁移方案


九、我可以继续帮你

你可以直接告诉我:

  1. Debian 版本(10 / 11 / 12)
  2. GitLab 版本
  3. 是否跨服务器
  4. 是否 Docker

我可以给你 精确到命令级别的迁移方案

0