迁移 Debian 上的 GitLab 通常有两种常见场景:
下面以 官方 Omnibus GitLab(Debian 包安装) 为例说明。
sudo gitlab-rake gitlab:env:info
或
cat /opt/gitlab/version-manifest.txt
⚠️ 目标服务器 GitLab 版本必须 ≥ 源服务器版本
sudo gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
文件名类似:
168neo123_2024_01_01_16.5.1_gitlab_backup.tar
sudo cp /etc/gitlab/gitlab.rb /backup/gitlab.rb.bak
sudo cp /etc/gitlab/gitlab-secrets.json /backup/gitlab-secrets.json.bak
不备份
gitlab-secrets.json会导致:
- CI/CD 变量无法解密
- Runner 无法注册
- 某些集成失效
scp /var/opt/gitlab/backups/*.tar user@new-server:/var/opt/gitlab/backups/
scp /backup/gitlab.rb.bak user@new-server:/etc/gitlab/gitlab.rb
scp /backup/gitlab-secrets.json.bak user@new-server:/etc/gitlab/gitlab-secrets.json
sudo apt update
sudo apt install gitlab-ee=16.5.1-ee.0
(或 gitlab-ce)
sudo chown root:root /etc/gitlab/gitlab.rb
sudo chown root:root /etc/gitlab/gitlab-secrets.json
sudo gitlab-ctl reconfigure
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=168neo123_2024_01_01_16.5.1
⚠️ 不要带 .tar 后缀
sudo gitlab-ctl start
sudo gitlab-rake gitlab:check SANITIZE=true
访问 Web 页面,确认:
先升级源服务器,再备份
备份至少需要 当前数据 2 倍空间
需要用:
docker exec -t gitlab gitlab-rake gitlab:backup:create
源:备份 → 拷贝 backup + rb + secrets
目标:装同版本 → 放文件 → reconfigure → 恢复
如果你愿意,可以告诉我:
我可以给你 定制迁移命令。