下面给你一个从现有 GitLab 迁移到 Debian 服务器的完整思路,适用于 GitLab CE / EE(Omnibus 安装)。
如果你用的是 Docker 或源码安装,步骤会略有不同,可再告诉我。
源服务器和目标 Debian 服务器的 GitLab 版本必须一致,否则备份可能无法恢复。
在源服务器查看版本:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
# 或
gitlab-rake gitlab:env:info
在 Debian 上安装相同版本 GitLab(见下文)。
sudo apt update
sudo apt install -y curl openssh-server ca-certificates postfix
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
(CE 用 gitlab-ce)
sudo apt install gitlab-ee=16.11.3-ee.0
sudo gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
# 例如:
1670000000_2023_12_01_16.11.3_gitlab_backup.tar
sudo tar czf gitlab-config.tar.gz \
/etc/gitlab \
/var/opt/gitlab/nginx \
/var/opt/gitlab/git-data
scp /var/opt/gitlab/backups/*.tar debian:/tmp/
scp gitlab-config.tar.gz debian:/tmp/
sudo gitlab-ctl stop
sudo tar xzf /tmp/gitlab-config.tar.gz -C /
sudo cp /tmp/*_gitlab_backup.tar /var/opt/gitlab/backups/
sudo chown git:git /var/opt/gitlab/backups/*.tar
sudo gitlab-rake gitlab:backup:restore BACKUP=1670000000_2023_12_01_16.11.3
按提示输入 yes
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo gitlab-rake gitlab:check SANITIZE=true
访问:
http://<debian-ip>
确认:
/etc/gitlab-runner)❗ 版本不一致 → 恢复失败
❗ 忘记备份 /etc/gitlab → 配置丢失
❗ SSH key 未迁移 → 无法 clone
❗ 磁盘空间不足 → 恢复中断
如果你愿意,可以告诉我:
我可以给你精确命令版迁移方案。