迁移 Debian 上的 GitLab 可以分为同机迁移 / 跨服务器迁移 / 版本升级迁移几种场景。下面给你一套最常用、最稳妥的 Debian GitLab 迁移方案,适用于 Omnibus 安装方式(官方包)。
在源服务器执行:
sudo gitlab-rake gitlab:env:info
确认:
/var/opt/gitlab)✅ 官方推荐方式:使用备份恢复(最安全)
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
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.jsonsudo cp /etc/gitlab/gitlab.rb /backup/
sudo cp /etc/gitlab/gitlab-secrets.json /backup/
如果是 Docker / 自定义路径,请一并拷贝:
⚠️ 版本必须一致或兼容
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
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
sudo gitlab-ctl start
sudo gitlab-ctl status
sudo gitlab-rake gitlab:check SANITIZE=true
访问 Web 页面,确认:
❌ 不能直接恢复
✅ 先恢复到相同版本,再升级
建议:
13 → 13 → 14 → 15
备份目录通常是:
/srv/gitlab/data/backups
源机:
gitlab-rake gitlab:backup:create
拷贝 backup + gitlab.rb + secrets.json
目标机:
装同版本 GitLab
恢复配置
gitlab-rake gitlab:backup:restore
如果你愿意,可以告诉我:
我可以给你定制迁移命令。