温馨提示×

Linux系统中GitLab的迁移步骤是什么

小樊
41
2025-11-08 23:55:54
栏目: 智能运维

1. 迁移前准备

  • 版本一致性检查:确认新旧服务器GitLab版本完全一致(如15.0.0),避免因版本差异导致数据兼容性问题。可通过cat /opt/gitlab/embedded/service/gitlab-rails/VERSION查看旧版本,新服务器安装时选择对应版本。
  • 依赖与环境准备:在新服务器安装GitLab运行所需依赖(如CentOS系统执行yum install policycoreutils openssh-server openssh-clients postfix),并启动SSH、Postfix服务(systemctl enable --now sshd postfix)。

2. 旧服务器数据备份

  • 完整备份命令:使用GitLab自带工具创建全量备份,包含项目代码、数据库、配置等所有数据。执行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安装

  • 版本匹配安装:在新服务器下载与旧服务器完全一致的GitLab RPM包(如CentOS 8使用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
  • 停止关联服务:停止GitLab的Unicorn(Web服务)和Sidekiq(后台任务)服务,确保数据恢复时无写入冲突。执行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确认恢复。
  • 重启GitLab服务:恢复完成后,启动GitLab所有服务:sudo gitlab-ctl start,并通过sudo gitlab-ctl status检查服务状态(应为run)。

5. 验证与测试

  • 功能测试:访问新服务器GitLab页面(http://新服务器IP),使用旧服务器账号登录,验证以下内容:
    • 项目列表、代码仓库是否完整;
    • 提交、拉取、合并请求等核心功能是否正常;
    • 用户权限、群组设置是否与旧服务器一致。
  • 数据一致性检查:随机抽查几个项目的git log,确认提交历史未被篡改;检查数据库中的用户、项目关联信息是否与旧服务器一致。

0