温馨提示×

怎样迁移GitLab到Debian

小樊
46
2026-10-05 11:07:16
栏目: 智能运维

下面给你一个从现有 GitLab 迁移到 Debian 服务器的完整思路,适用于 GitLab CE / EE(Omnibus 安装)。
如果你用的是 Docker 或源码安装,步骤会略有不同,可再告诉我。


一、迁移前准备

1. 确认版本一致(非常重要)

源服务器和目标 Debian 服务器的 GitLab 版本必须一致,否则备份可能无法恢复。

在源服务器查看版本:

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 或
gitlab-rake gitlab:env:info

在 Debian 上安装相同版本 GitLab(见下文)。


2. 目标 Debian 系统要求

  • Debian 11 / 12(推荐)
  • 足够磁盘空间(≥源 GitLab 数据大小)
  • 已配置 hostname、时间同步

二、在 Debian 上安装 GitLab

1. 安装依赖

sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix

2. 添加 GitLab 源

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

(CE 用 gitlab-ce)

3. 安装指定版本(示例)

sudo apt install gitlab-ee=16.11.3-ee.0

三、在源 GitLab 上备份

1. 创建备份

sudo gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/
# 例如:
1670000000_2023_12_01_16.11.3_gitlab_backup.tar

2. 备份配置文件(必须)

sudo tar czf gitlab-config.tar.gz \
  /etc/gitlab \
  /var/opt/gitlab/nginx \
  /var/opt/gitlab/git-data

四、传输备份到 Debian

scp /var/opt/gitlab/backups/*.tar debian:/tmp/
scp gitlab-config.tar.gz debian:/tmp/

五、在 Debian 上恢复

1. 停止 GitLab 服务

sudo gitlab-ctl stop

2. 恢复配置文件

sudo tar xzf /tmp/gitlab-config.tar.gz -C /

3. 恢复数据

sudo cp /tmp/*_gitlab_backup.tar /var/opt/gitlab/backups/
sudo chown git:git /var/opt/gitlab/backups/*.tar

sudo gitlab-rake gitlab:backup:restore BACKUP=1670000000_2023_12_01_16.11.3

按提示输入 yes


4. 重新配置并启动

sudo gitlab-ctl reconfigure
sudo gitlab-ctl start

六、验证迁移

sudo gitlab-rake gitlab:check SANITIZE=true

访问:

http://<debian-ip>

确认:

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

七、可选优化

  • 修改 DNS / 负载均衡指向新服务器
  • 配置 HTTPS(Let’s Encrypt)
  • 迁移 Runner(复制 /etc/gitlab-runner)
  • 设置定时备份

八、常见坑提醒

❗ 版本不一致 → 恢复失败
❗ 忘记备份 /etc/gitlab → 配置丢失
❗ SSH key 未迁移 → 无法 clone
❗ 磁盘空间不足 → 恢复中断


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

  • GitLab 版本
  • 是否 Docker
  • Debian 版本
  • 是否含 Runner / Registry

我可以给你精确命令版迁移方案。

0 踩