CentOS环境下GitLab迁移的详细步骤
迁移GitLab至新服务器需遵循“备份-安装-恢复-验证”的核心流程,确保数据完整性与服务连续性:
policycoreutils(SELinux支持)、openssh-server/openssh-clients(SSH通信)、postfix(邮件通知),并启动相关服务(systemctl enable/start sshd postfix)。gitlab-ctl stop unicorn gitlab-ctl stop sidekiq;/var/opt/gitlab/backups):gitlab-rake gitlab:backup:create,生成的备份文件名为YYYY-MM-DD-HH-MM-SS_gitlab_backup.tar。scp命令将备份文件复制到新服务器指定目录(如/var/opt/gitlab/backups):scp root@旧服务器IP:/var/opt/gitlab/backups/备份文件名 root@新服务器IP:/var/opt/gitlab/backups/。curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash;yum install gitlab-ce,安装过程中若提示缺少依赖(如policycoreutils-python),需同步安装。gitlab-ctl stop unicorn gitlab-ctl stop sidekiq;BACKUP为实际备份文件名,无需写扩展名):gitlab-rake gitlab:backup:restore BACKUP=2025-09-10-14-30-00;gitlab-ctl reconfigure,并启动服务:gitlab-ctl start。/etc/gitlab/gitlab.rb,确保关键配置正确:
external_url 'http://新服务器IP'(替换为新服务器IP或域名);gitlab_rails['smtp_enable'] = true、gitlab_rails['smtp_address'] = "smtp.qq.com"等;gitlab-ctl restart;http://新服务器IP,使用旧服务器账号登录,验证项目、用户权限、CI/CD配置是否正常。CentOS与GitLab的常见兼容性问题及解决
el7版本(如gitlab-ce-13.11.0-ce.0.el7.x86_64.rpm),CentOS 8/Alibaba Cloud Linux 3需安装el8版本,CentOS Stream 8/9可选择对应滚动版本。若版本不匹配,安装过程中会出现依赖错误(如Error: Package X conflicts with Y)。policycoreutils(用于SELinux策略管理)、openssh-server(用于SSH克隆/推送)、postfix(用于邮件通知)等依赖。若缺失,可通过yum install命令补充,否则会导致GitLab无法正常启动(如Failed to start gitlab-runsvdir.service)。chcon -R -t gitlab_sys_rw_content_t /var/opt/gitlab。若未配置,可能导致权限拒绝错误(如Permission denied @ dir_s_mkdir - /var/opt/gitlab/repositories)。systemctl stop httpd)或修改GitLab端口(在/etc/gitlab/gitlab.rb中设置external_url 'http://新服务器IP:8080',并修改SSH端口gitlab_rails['gitlab_shell_ssh_port'] = 2222),随后执行gitlab-ctl reconfigure使端口变更生效。gitlab-ee-migration-tool)导出SQL数据,再导入至新服务器,确保数据格式兼容。