统信UOSX86_64架构下Gitlab搭建(基于Centos8)

112 阅读4分钟

网上寻找el8包或直接使用一下链接 packages.gitlab.com/gitlab/gitl… 服务器可连外网情况下直接使用wget命令下载到指定位置,如/usr/local/gitlab下

内网则下载后上传至该目录 使用rpm命令进行安装

rpm -ivh ****.rpm

可先进行rpm -K命令验证包,如果签名无效则忽略签名

rpm --nosignature -i example.rpm

安装成功后会有提示

QQ图片20240926163244.png 备份配置文件gitlab.rb

QQ图片20240926163420.png

修改配置文件,将gitlab.example.com修改为内网IP地址和端口

QQ图片20240926163244.png

注意此处若需要外网访问或使用了域名,则将上述配置项(external_url)修改为域名及外部端口,下方配置项(nginx)正常使用内部端口

去除#注释,并将端口修改为上述对应

QQ图片20240926163244.png

执行gitlab-ctl reconfigure命令重新加载配置文件

等待执行完成后,执行gitlab-ctl restart命令,成功后会有提示

QQ图片20240926163244.png

查看防火墙是否开启,若开启则将8500端口加入通行规则

firewall-cmd --zone=public --add-port=8500/tcp --permanent

重启防火墙

firewall-cmd --reload

此时访问 http://192.168.1.105:8005/users/sign_in可见

QQ图片20240926163244.png

配置初始账户

user=User.where(username:"root").first

QQ图片20240926163244.png

QQ图片20240926163244.png

密码有些许要求,可自行测试

如果需要从旧服务器上进行迁移,考虑将/var/opt/下的gitlab文件夹打包,通过scp传输到新服务器上,记得备份

QQ图片20240926163244.png

QQ图片20240926163244.png

提供一套官方的迁移方案

GitLab 数据迁移到新服务器的完整流程如下,确保数据完整性和服务连续性:

一、旧服务器操作:数据备份

  1. 全量备份GitLab数据

    bash

    复制

    sudo gitlab-rake gitlab:backup:create
    
    • 备份文件默认生成在 /var/opt/gitlab/backups/ 目录,命名格式:[TIMESTAMP]_gitlab_backup.tar

    • 使用 STRATEGY=copy 可避免数据变更期间的备份不一致(适用于大型仓库):

      bash

      复制

      sudo gitlab-rake gitlab:backup:create STRATEGY=copy
      
  2. 手动备份关键配置文件

    bash

    复制

    sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
    sudo cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.bak
    

二、传输备份文件到新服务器

  1. 通过SCP直接传输(适合小文件)

    bash

    复制

    scp /var/opt/gitlab/backups/[备份文件名].tar 新服务器用户@新服务器IP:/目标路径/
    
  2. 通过Rsync增量传输(推荐大文件)

    bash

    复制

    rsync -avzP /var/opt/gitlab/backups/[备份文件名].tar 新服务器用户@新服务器IP:/目标路径/
    

三、新服务器准备:安装GitLab

  1. 安装与旧服务器相同版本的GitLab

    • 查看旧服务器版本:

      bash

      复制

      sudo gitlab-rake gitlab:env:info | grep "Version"
      
    • 根据操作系统安装指定版本(以Ubuntu为例):

      bash

      复制

      # 下载对应版本的.deb包
      wget https://packages.gitlab.com/gitlab/gitlab-ce/packages/ubuntu/focal/gitlab-ce_[版本号]-ce.0_amd64.deb
      
      sudo dpkg -i gitlab-ce_[版本号]-ce.0_amd64.deb
      

四、恢复数据到新服务器

  1. 放置备份文件并设置权限

    bash

    复制

    sudo cp [备份文件名].tar /var/opt/gitlab/backups/
    sudo chown git:git /var/opt/gitlab/backups/[备份文件名].tar
    
  2. 停止相关服务

    bash

    复制

    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    
  3. 执行恢复命令

    bash

    复制

    sudo gitlab-rake gitlab:backup:restore BACKUP=[备份文件名中的TIMESTAMP]
    
    • 按提示输入 yes 确认恢复数据库。
  4. 恢复配置文件

    bash

    复制

    sudo cp gitlab.rb /etc/gitlab/
    sudo cp gitlab-secrets.json /etc/gitlab/
    
  5. 重新配置并重启服务

    bash

    复制

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl restart
    

五、验证迁移结果

  1. 基础检查

    bash

    复制

    sudo gitlab-rake gitlab:check SANITIZE=true
    
  2. 功能验证

    • 访问Web界面,确认项目、用户、组数据完整。

    • 执行仓库克隆和推送测试:

      bash

      复制

      git clone http://新服务器地址/项目组/项目.git
      cd 项目 && touch test.txt && git add . && git commit -m "test" && git push
      

六、切换DNS及防火墙配置

  1. 更新域名解析
    将域名A记录指向新服务器IP,等待DNS生效(TTL时间)。

  2. 开放端口
    确保防火墙允许HTTP/HTTPS(80/443)和SSH(22)端口:

    bash

    复制

    sudo ufw allow 80/tcp
    sudo ufw allow 443/tcp
    sudo ufw allow 22/tcp
    

七、高级注意事项

  • 仓库存储路径调整
    若旧服务器自定义了存储目录(git_data_dir),需确保新服务器路径一致,并复制所有仓库文件。
  • 对象存储迁移
    若使用外部对象存储(如AWS S3),需在新服务器gitlab.rb中配置相同的存储参数。
  • CI/CD Runner重注册
    原有Runner需重新注册到新GitLab实例,或修改config.toml中的URL。

八、回滚方案(迁移失败时)

  1. 停止新服务器GitLab服务:

    bash

    复制

    sudo gitlab-ctl stop
    
  2. 删除错误数据,重新尝试恢复备份。

  3. 若无法解决,将DNS切回旧服务器,保证服务可用性。


关键风险提示

  • 版本一致性:新旧服务器GitLab版本差异可能导致数据结构不兼容,务必严格匹配版本号(包括小版本)。
  • 加密信息gitlab-secrets.json丢失将导致两步验证、CI变量等加密数据无法解密。
  • 停机时间:大型仓库备份/恢复耗时较长,建议在低峰期操作,并通过maintenance page通知用户。