温馨提示×

怎样迁移debian的gitlab

小樊
38
2026-09-20 19:07:25
栏目: 智能运维

迁移 Debian 上的 GitLab 可以分为同机迁移 / 跨服务器迁移 / 版本升级迁移几种场景。下面给你一套最常用、最稳妥的 Debian GitLab 迁移方案,适用于 Omnibus 安装方式(官方包)。


一、准备信息(先确认)

在源服务器执行:

sudo gitlab-rake gitlab:env:info

确认:

  • GitLab 版本
  • 安装方式(Omnibus / 源码 / Docker)
  • 数据目录(默认 /var/opt/gitlab

二、迁移方式推荐(最重要)

官方推荐方式:使用备份恢复(最安全)


三、源服务器:创建备份

1. 停止相关服务(可选但推荐)

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

2. 创建完整备份

sudo gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/
# 示例
1670000000_2023_12_01_gitlab_backup.tar

⚠️ 该备份不包含

  • /etc/gitlab/gitlab.rb
  • /etc/gitlab/gitlab-secrets.json

四、拷贝关键配置文件

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

如果是 Docker / 自定义路径,请一并拷贝:

  • SSH host keys
  • registry 数据(如有)

五、目标服务器:安装相同版本 GitLab

⚠️ 版本必须一致或兼容

1. 添加 GitLab 源

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

2. 安装同版本 GitLab

sudo apt install gitlab-ce=15.11.0-ce.0

查看可用版本:

apt-cache madison gitlab-ce

六、恢复配置文件

sudo cp gitlab.rb /etc/gitlab/
sudo cp gitlab-secrets.json /etc/gitlab/
sudo gitlab-ctl reconfigure

七、恢复备份数据

将备份文件放到:

/var/opt/gitlab/backups/

执行恢复(注意文件名不带 _gitlab_backup.tar):

sudo gitlab-rake gitlab:backup:restore BACKUP=1670000000_2023_12_01

按提示输入 yes


八、启动 GitLab

sudo gitlab-ctl start
sudo gitlab-ctl status

九、验证迁移

sudo gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面,确认:

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

十、常见问题

1. 版本不一致

❌ 不能直接恢复
✅ 先恢复到相同版本,再升级

2. 跨大版本

建议:

13 → 13 → 14 → 15

3. Docker GitLab

备份目录通常是:

/srv/gitlab/data/backups

十一、总结(最简流程)

源机:
gitlab-rake gitlab:backup:create
拷贝 backup + gitlab.rb + secrets.json

目标机:
装同版本 GitLab
恢复配置
gitlab-rake gitlab:backup:restore

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

  • 是否 同服务器 / 跨服务器
  • GitLab 版本
  • 是否使用 Docker

我可以给你定制迁移命令

0