温馨提示×

centos gitlab怎么迁移

小樊
33
2026-09-18 00:57:15
栏目: 智能运维

CentOS 上迁移 GitLab,常见有几种场景,我先按最常用、最稳妥的方式给你讲,然后给你具体命令步骤


一、迁移方式选择(先确认你属于哪种)

✅ 方式 1:同版本 GitLab 备份迁移(最推荐)

适用于:

  • 服务器更换
  • CentOS 重装
  • 迁移到新机器(IP 可不同)

优点:最安全、官方支持


✅ 方式 2:跨版本迁移(小版本升级)

  • 先备份
  • 新机器安装相同或更高版本
  • 恢复备份

⚠️ 不建议跨大版本直接恢复


✅ 方式 3:Docker GitLab 迁移

如果你用的是 Docker,方式更简单(后面可补充)


二、标准迁移步骤(CentOS → CentOS)

1️⃣ 旧服务器:创建备份

gitlab-rake gitlab:backup:create

备份文件位置:

/var/opt/gitlab/backups/

文件名类似:

1651234567_2024_01_01_gitlab_backup.tar

2️⃣ 拷贝备份到新服务器

scp /var/opt/gitlab/backups/*.tar root@新服务器IP:/var/opt/gitlab/backups/

3️⃣ 新服务器:安装相同版本 GitLab

查看旧版本:

cat /opt/gitlab/version-manifest.txt

新服务器安装(示例):

yum install -y curl policycoreutils-python openssh-server
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
yum install gitlab-ce-<版本号>

4️⃣ 修改 GitLab 配置(IP / 域名)

vi /etc/gitlab/gitlab.rb

修改:

external_url 'http://新IP或域名'

使配置生效:

gitlab-ctl reconfigure

5️⃣ 恢复备份

gitlab-ctl stop unicorn
gitlab-ctl stop puma
gitlab-ctl stop sidekiq

恢复(文件名不含 _gitlab_backup.tar):

gitlab-rake gitlab:backup:restore BACKUP=1651234567_2024_01_01

启动:

gitlab-ctl start

6️⃣ 检查状态

gitlab-ctl status
gitlab-rake gitlab:check SANITIZE=true

三、额外注意(很重要)

✅ 配置文件也要迁移

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

否则:

  • CI/CD
  • Runner
  • Webhook 可能异常

✅ 如果用了 HTTPS

还需迁移:

/etc/gitlab/ssl/

四、常见问题

❓ 恢复后 502

gitlab-ctl restart

❓ 版本不一致

必须先升级旧 GitLab 到新版本再备份


五、你可以告诉我

我可以给你更精确的命令,只要告诉我:

  1. GitLab 版本
  2. 是否 Docker
  3. CentOS 版本(7 / 8 / Stream)
  4. 是否换 IP / 域名

我可以直接给你一套可执行脚本

0