温馨提示×

Debian下GitLab如何迁移

小樊
35
2026-07-07 06:17:05
栏目: 智能运维

Debian 下迁移 GitLab,常见有 三种方式,按推荐程度从高到低说明。你可以根据场景选择。


✅ 推荐方式一:GitLab 官方备份 / 恢复(最安全、最常用)

适用于:

  • 同版本迁移
  • 跨服务器迁移
  • 升级迁移

一、在 旧服务器 上操作

1. 确认 GitLab 版本

gitlab-rake gitlab:env:info

⚠️ 新服务器 GitLab 版本必须 ≥ 旧服务器版本


2. 创建完整备份

gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1234567890_2026_01_21_gitlab_backup.tar

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

cp /etc/gitlab/gitlab.rb /root/gitlab.rb.bak
cp -r /etc/gitlab/ssl /root/ssl.bak   # 如有 HTTPS

二、在 新 Debian 服务器 上操作

1. 安装相同版本 GitLab

查看官方安装文档: https://about.gitlab.com/install/

示例(GitLab CE):

curl -fsSL https://packages.gitlab.com/gpg.key | gpg --dearmor > /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" \
> /etc/apt/sources.list.d/gitlab_gitlab-ce.list

apt update
apt install gitlab-ce

2. 恢复配置文件

cp /root/gitlab.rb.bak /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure

3. 拷贝备份文件

scp old-server:/var/opt/gitlab/backups/*.tar /var/opt/gitlab/backups/
chmod 600 /var/opt/gitlab/backups/*.tar

4. 停止相关服务

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

5. 恢复备份

gitlab-rake gitlab:backup:restore BACKUP=1234567890_2026_01_21

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


6. 启动 GitLab

gitlab-ctl reconfigure
gitlab-ctl restart

7. 验证

gitlab-rake gitlab:check SANITIZE=true

浏览器访问新服务器 IP / 域名 ✅


✅ 方式二:整机迁移(适合虚拟机 / 云服务器)

适用于:

  • 物理机 → 虚拟机
  • 云服务器迁移

步骤

  1. 旧服务器:

    tar -czvf gitlab-full.tar.gz /etc/gitlab /var/opt/gitlab
    
  2. 新服务器:

    • 安装 相同版本 GitLab
    • 停止服务
    • 覆盖目录
    • gitlab-ctl reconfigure
    • gitlab-ctl restart

⚠️ 风险较高,不推荐跨大版本


✅ 方式三:Docker GitLab 迁移(如果你用的是 Docker)

旧服务器

docker stop gitlab
tar -czvf gitlab-docker.tar.gz /srv/gitlab

新服务器

tar -xzvf gitlab-docker.tar.gz -C /
docker run -d \
  --name gitlab \
  -v /srv/gitlab/config:/etc/gitlab \
  -v /srv/gitlab/logs:/var/log/gitlab \
  -v /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:版本号

⚠️ 常见问题

1. 版本不一致

GitLab version mismatch

✅ 先在旧服务器升级 GitLab,再迁移


2. 权限问题

chown -R git:git /var/opt/gitlab/backups

3. SSH Key / 仓库地址变化

  • 迁移后 仓库 URL 不变
  • 若域名/IP 变化,需更新 DNS 或客户端 remote

✅ 迁移检查清单

项目 是否完成
GitLab 版本一致
备份 + 配置文件
恢复后 reconfigure
仓库 / 用户 / CI 正常

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

  • GitLab 版本
  • Debian 版本
  • 是否使用 Docker
  • 是否跨版本升级

我可以给你 精确命令方案

0