温馨提示×

ubuntu上gitlab如何进行数据迁移

小樊
40
2025-10-31 21:28:46
栏目: 智能运维

Ubuntu上GitLab数据迁移步骤

1. 准备工作:确保版本一致

迁移前必须确认新旧服务器GitLab版本完全一致(如旧服务器为14.8.2,新服务器需安装相同版本)。可通过以下命令查看旧版本:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
若版本不一致,需先在新服务器安装对应版本(参考GitLab官方仓库下载对应deb包,或使用Omnibus脚本安装指定版本)。

2. 备份旧服务器数据

使用GitLab内置工具创建完整备份,包含仓库、用户、CI/CD配置等所有数据:
sudo gitlab-rake gitlab:backup:create
默认备份文件会保存到/var/opt/gitlab/backups/目录,文件名格式为时间戳_日期_版本号_gitlab_backup.tar(如1715587200_2025-05-13_14.8.2_gitlab_backup.tar)。

3. 安装新服务器GitLab实例

在新Ubuntu服务器上安装与旧服务器相同版本的GitLab(以Omnibus包为例):

  • 导入GitLab GPG密钥:curl https://packages.gitlab.com/gpg.key | sudo apt-key add -
  • 添加GitLab仓库:echo "deb https://packages.gitlab.com/gitlab/gitlab-ce/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gitlab.list
  • 更新包索引并安装:sudo apt-get update && sudo apt-get install gitlab-ce
  • 配置基础参数(如外部URL):编辑/etc/gitlab/gitlab.rb,设置external_url 'http://新服务器IP:端口',然后执行sudo gitlab-ctl reconfigure使配置生效。

4. 迁移备份文件到新服务器

将旧服务器/var/opt/gitlab/backups/目录下的备份文件复制到新服务器的相同路径(需确保新服务器有足够存储空间):
scp -r 旧服务器IP:/var/opt/gitlab/backups/*.tar 新服务器IP:/var/opt/gitlab/backups/
复制完成后,修改备份文件权限(确保git用户可读):
sudo chown -R git:git /var/opt/gitlab/backups/

5. 恢复数据到新服务器

  • 停止相关服务:为保证数据一致性,需停止GitLab的unicorn(Web服务)和sidekiq(后台任务)服务:
    sudo gitlab-ctl stop unicorn && sudo gitlab-ctl stop sidekiq
  • 执行恢复:使用gitlab-rake命令恢复备份,BACKUP参数需替换为备份文件的时间戳部分(如1715587200):
    sudo gitlab-rake gitlab:backup:restore BACKUP=1715587200
    执行过程中会提示“是否覆盖现有数据库”,输入yes确认。
  • 恢复配置文件:将旧服务器的/etc/gitlab/gitlab.rb(配置文件)和/etc/gitlab/ssl/(SSL证书,若有)复制到新服务器相同路径,确保服务配置一致。

6. 启动新服务器GitLab服务

恢复完成后,重新加载配置并启动所有服务:
sudo gitlab-ctl reconfigure && sudo gitlab-ctl start
启动后检查服务状态:sudo gitlab-ctl status,确保所有服务(unicorn、sidekiq、nginx等)均为“run”状态。

7. 验证迁移结果

  • 访问新服务器GitLab Web界面(http://新服务器IP:端口),使用旧服务器的管理员账号(如root)登录,确认账号信息一致。
  • 检查项目仓库:进入任意项目,验证代码提交历史、分支等是否完整。
  • 测试CI/CD:触发一个简单的流水线任务,确认流水线能正常运行。
  • 验证用户权限:检查普通用户的代码推送、拉取权限是否正常。

8. 清理与优化(可选)

  • 若迁移成功,可删除旧服务器的GitLab数据及备份文件,释放存储空间。
  • 根据新服务器环境调整GitLab配置(如增加内存限制、优化数据库参数),提升性能。

0