Linux下GitLab迁移的详细步骤
运行以下命令创建完整备份(包含数据库、仓库、附件、配置等):
sudo gitlab-rake gitlab:backup:create
默认备份文件存储在/var/opt/gitlab/backups/目录,文件名格式为时间戳_版本号_gitlab_backup.tar(如1716585600_15.10.0_gitlab_backup.tar)。
手动复制以下配置文件到安全位置(如外部存储或新服务器临时目录):
/etc/gitlab/gitlab.rb:GitLab主配置文件(含外部URL、邮件设置、备份路径等);/etc/gitlab/gitlab-secrets.json:存储数据库密钥、OAuth令牌等敏感信息(必备份,否则无法恢复)。在新服务器上安装与原服务器完全相同的GitLab版本(以GitLab CE为例):
# 添加GitLab官方仓库(以CentOS为例)
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
# 安装指定版本(如15.10.0)
sudo yum install -y gitlab-ce-15.10.0-ce.0.el7.x86_64
编辑/etc/gitlab/gitlab.rb,设置外部URL(需与原服务器一致,避免用户链接失效):
external_url 'http://your-new-server-ip'
保存后重新配置GitLab:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo gitlab-ctl enable # 设置开机自启
将原服务器的备份文件(gitlab_backup.tar)和配置文件(gitlab.rb、gitlab-secrets.json)复制到新服务器对应目录:
# 复制备份文件
scp /path/to/original/gitlab_backup.tar root@new-server:/var/opt/gitlab/backups/
# 复制配置文件
scp /etc/gitlab/gitlab.rb root@new-server:/etc/gitlab/
scp /etc/gitlab/gitlab-secrets.json root@new-server:/etc/gitlab/
git)有权访问备份文件:sudo chown git:git /var/opt/gitlab/backups/gitlab_backup.tar
sudo gitlab-rake gitlab:backup:restore BACKUP=时间戳
其中时间戳为备份文件名中的时间部分(如1716585600)。恢复过程会覆盖新服务器上的现有数据,需确认操作。将原服务器的配置文件复制到新服务器对应目录:
sudo cp /path/to/original/gitlab.rb /etc/gitlab/
sudo cp /path/to/original/gitlab-secrets.json /etc/gitlab/
sudo gitlab-ctl reconfigure # 应用新配置
sudo gitlab-ctl restart # 重启服务使配置生效
http://your-new-server-ip),确认能正常登录。