1. 迁移前准备
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION查看旧版本,新服务器安装时选择对应版本。yum install policycoreutils openssh-server openssh-clients postfix),并启动SSH、Postfix服务(systemctl enable --now sshd postfix)。2. 旧服务器数据备份
sudo gitlab-rake gitlab:backup:create,默认生成备份文件存放在/var/opt/gitlab/backups/目录,文件名格式为时间戳_版本号_gitlab_backup.tar(如1712345678_15.0.0_gitlab_backup.tar)。scp命令将备份文件复制到新服务器指定目录(如/var/opt/gitlab/backups/)。示例:scp /var/opt/gitlab/backups/1712345678_15.0.0_gitlab_backup.tar root@新服务器IP:/var/opt/gitlab/backups/,输入新服务器密码完成传输。3. 新服务器GitLab安装
wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/8/gitlab-ce-15.0.0-ce.0.el8.x86_64.rpm),添加GitLab仓库并安装:rpm -ivh gitlab-ce-15.0.0-ce.0.el8.x86_64.rpm。/etc/gitlab/gitlab.rb文件,设置外部访问URL(external_url 'http://新服务器IP')和备份路径(gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"),确保路径与旧服务器一致。4. 数据恢复操作
cd /var/opt/gitlab/backups && chmod 777 1712345678_15.0.0_gitlab_backup.tar。sudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiq。gitlab-rake工具恢复备份,指定备份文件编号(如1712345678_15.0.0)。执行sudo gitlab-rake gitlab:backup:restore BACKUP=1712345678_15.0.0,按提示输入yes确认恢复。sudo gitlab-ctl start,并通过sudo gitlab-ctl status检查服务状态(应为run)。5. 验证与测试
http://新服务器IP),使用旧服务器账号登录,验证以下内容:
git log,确认提交历史未被篡改;检查数据库中的用户、项目关联信息是否与旧服务器一致。