在 Debian 上迁移 GitLab,常见有 同机迁移/升级 和 跨服务器迁移 两种场景。下面按 最常用、最稳妥 的方式给你一个完整流程(适用于 Omnibus 版 GitLab)。
sudo gitlab-rake gitlab:env:info
或
dpkg -l | grep gitlab
✅ 推荐:Omnibus GitLab(gitlab-ee / gitlab-ce)
cat /opt/gitlab/version-manifest.txt
⚠️ 目标服务器 GitLab 版本必须 ≥ 源服务器版本
sudo gitlab-ctl stop
sudo gitlab-backup create
备份文件位置:
/var/opt/gitlab/backups/
文件名类似:
1690000000_2024_01_01_gitlab_backup.tar
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/
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
(版本号需和源服务器一致)
sudo tar xzf /var/opt/gitlab/backups/gitlab-config.tar.gz -C /
sudo gitlab-ctl reconfigure
sudo gitlab-backup restore BACKUP=1690000000_2024_01_01
只写时间戳部分,不要
.tar
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
访问 Web 页面,确认:
✅ 先升级源服务器,再迁移
sudo gitlab-ctl status
sudo gitlab-ctl tail
确认:
/etc/gitlab/gitlab-secrets.json
已正确恢复
如果你用的是:
我可以给你 对应版本的迁移方案。
你可以直接告诉我:
我可以给你 精确到命令级别的迁移方案 ✅