centos

CentOS下GitLab的迁移步骤

小樊
41
2025-09-26 09:31:28
栏目: 智能运维

CentOS下GitLab迁移步骤

一、迁移前准备工作

  1. 确认新旧服务器环境
    确保新服务器为CentOS系统(版本需与旧服务器一致,如CentOS 7/8),并已更新系统(sudo yum update -y)。
  2. 安装必要依赖
    在新服务器上安装GitLab运行所需的依赖包,避免后续安装失败:
    sudo yum install -y curl policycoreutils-python openssh-server openssh-clients postfix
    
  3. 配置防火墙
    开放GitLab所需端口(HTTP 80、HTTPS 443、SSH 22),允许外部访问:
    sudo firewall-cmd --permanent --add-service=http
    sudo firewall-cmd --permanent --add-service=https
    sudo firewall-cmd --permanent --add-service=ssh
    sudo firewall-cmd --reload
    

二、旧服务器数据备份

  1. 使用GitLab工具创建备份
    执行以下命令生成包含仓库、数据库、用户信息等的完整备份(默认存储到/var/opt/gitlab/backups):
    sudo gitlab-rake gitlab:backup:create
    
    备份文件命名格式为YYYY-MM-DD-HH-MM-SS_gitlab_backup.tar(如2025-09-26-14-30-00_gitlab_backup.tar)。
  2. 备份关键配置文件
    除数据外,需单独备份GitLab配置文件(/etc/gitlab/gitlab.rb),其中包含外部URL、SMTP邮件设置等关键参数:
    sudo cp /etc/gitlab/gitlab.rb /backup/gitlab_config.rb
    

三、新服务器安装GitLab

  1. 添加GitLab官方仓库
    导入GitLab的GPG密钥并添加仓库,确保安装最新稳定版:
    curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
    
  2. 安装GitLab CE
    使用YUM安装GitLab社区版(CE),安装过程中会自动解决依赖关系:
    sudo yum install -y gitlab-ce
    
  3. 配置初始参数
    编辑/etc/gitlab/gitlab.rb,设置外部访问URL(替换为新服务器IP或域名):
    sudo vi /etc/gitlab/gitlab.rb
    # 修改以下行(取消注释并替换)
    external_url 'http://新服务器IP'
    
    保存后重新配置GitLab,使设置生效:
    sudo gitlab-ctl reconfigure
    

四、数据迁移到新服务器

  1. 传输备份文件
    使用scp将旧服务器的备份文件(含数据目录和配置文件)复制到新服务器的对应目录:
    scp /var/opt/gitlab/backups/2025-09-26-14-30-00_gitlab_backup.tar root@新服务器IP:/var/opt/gitlab/backups/
    scp /backup/gitlab_config.rb root@新服务器IP:/etc/gitlab/gitlab.rb
    
  2. 恢复数据
    停止GitLab的关键服务(unicorn、sidekiq),避免数据冲突;然后执行恢复操作:
    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    sudo gitlab-rake gitlab:backup:restore BACKUP=2025-09-26-14-30-00  # 替换为备份文件的时间戳部分
    
  3. 恢复配置文件
    将旧服务器的gitlab.rb覆盖新服务器的配置文件,确保设置一致:
    sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak  # 备份新服务器原有配置
    sudo cp /backup/gitlab_config.rb /etc/gitlab/gitlab.rb
    sudo gitlab-ctl reconfigure  # 重新应用配置
    

五、启动与验证

  1. 启动GitLab服务
    启动GitLab主服务及依赖组件,设置开机自启:
    sudo gitlab-ctl start
    sudo systemctl enable gitlab
    
  2. 验证迁移结果
    在浏览器中访问新服务器的外部URL(如http://新服务器IP),使用旧服务器的管理员账号登录,检查以下内容:
    • 项目仓库是否能正常克隆、推送;
    • 用户权限是否保留(如管理员、普通用户权限);
    • CI/CD配置(如流水线、任务)是否正常运行;
    • 邮件通知(若有配置)是否能正常发送。

注意事项

0
看了该问题的人还看了