温馨提示×

gitlab在debian如何迁移

小樊
33
2026-10-11 08:50:59
栏目: 智能运维

在 Debian 上将 GitLab 迁移,通常分为 同版本迁移 和 跨版本/跨服务器迁移 两种场景。下面以 官方 Omnibus GitLab(最常见) 为例说明。


一、迁移前准备

1. 确认 GitLab 版本

gitlab-rake gitlab:env:info

或

cat /opt/gitlab/version-manifest.txt

✅ 强烈建议:源和目标 GitLab 版本一致


2. 停止 GitLab 服务(源服务器)

sudo gitlab-ctl stop

二、使用官方备份方式(推荐)

1. 在源服务器创建备份

sudo gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1690000000_2024_07_20_16.0.1_gitlab_backup.tar

2. 拷贝备份文件到目标服务器

scp /var/opt/gitlab/backups/*.tar root@目标IP:/var/opt/gitlab/backups/

同时拷贝配置文件:

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

三、目标服务器恢复

1. 安装相同版本 GitLab

apt-get install gitlab-ee=16.0.1-ee.0

或

apt-get install gitlab-ce=16.0.1-ce.0

2. 拷贝配置文件

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

重新配置:

gitlab-ctl reconfigure

3. 停止相关服务

gitlab-ctl stop puma
gitlab-ctl stop sidekiq

4. 执行恢复

gitlab-rake gitlab:backup:restore BACKUP=1690000000_2024_07_20_16.0.1

按提示输入 yes


5. 启动 GitLab

gitlab-ctl start

四、验证迁移

gitlab-rake gitlab:check SANITIZE=true

访问 Web 页面,确认:

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

五、其他迁移方式(简要)

✅ Docker GitLab

  • 拷贝 /var/opt/gitlab
  • 拷贝 /etc/gitlab

✅ 整机迁移(最省事)

  • 直接克隆磁盘或虚拟机
  • 修改 IP / 域名

❌ 不推荐

  • 手动复制 PostgreSQL 数据目录(极易损坏)

六、常见问题

1. 版本不一致

先升级源 GitLab 到目标版本,再备份

2. 恢复后 500 错误

gitlab-ctl reconfigure
gitlab-ctl restart

3. 忘记 secrets.json

会导致:

  • CI Token 失效
  • Runner 无法注册

如果你能告诉我:

  • Debian 版本
  • GitLab 版本(CE / EE)
  • 是否跨服务器
  • 是否 Docker

我可以给你 精确命令级方案。

0 踩