温馨提示×

Ubuntu GitLab更新后如何迁移数据

小樊
52
2025-09-19 08:19:45
栏目: 智能运维

Ubuntu GitLab更新后数据迁移指南

一、迁移前准备

  1. 备份所有关键数据
    使用GitLab内置工具创建完整备份,包含仓库、用户信息、CI/CD配置、问题跟踪等:
    sudo gitlab-rake gitlab:backup:create
    
    备份文件默认存储在/var/opt/gitlab/backups目录,文件名格式为YYYY-MM-DD-HH-mm-ss_gitlab_backup.tar
  2. 停止GitLab相关服务
    避免迁移过程中数据写入导致不一致,停止核心服务:
    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    sudo gitlab-ctl stop nginx  # 可选,若涉及web配置变更
    

二、安装新版本GitLab(若未完成)

若迁移至全新服务器或需要全新安装,需先通过Omnibus包安装最新版GitLab:

# 导入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

安装完成后,通过sudo gitlab-ctl reconfigure应用初始配置。

三、迁移核心数据

1. 迁移备份文件

将旧服务器/var/opt/gitlab/backups目录下的备份文件复制到新服务器相同路径:

scp -r user@old-server:/var/opt/gitlab/backups/* user@new-server:/var/opt/gitlab/backups/

2. 恢复备份数据

在新服务器上,使用GitLab恢复工具导入备份(需停止相关服务):

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=2025-09-18-12-00-00  # 替换为实际备份文件名(不含.tar后缀)

3. 迁移仓库与配置文件(可选,若备份未覆盖)

若备份不完整,手动复制仓库目录(存储代码仓库)及配置、附件目录:

# 复制仓库(默认路径)
sudo rsync -avz /var/opt/gitlab/repositories/ user@new-server:/var/opt/gitlab/
# 复制配置文件(含gitlab.rb)
sudo rsync -avz /var/opt/gitlab/config/ user@new-server:/var/opt/gitlab/
# 复制共享文件(含附件、LFS对象等)
sudo rsync -avz /var/opt/gitlab/shared/ user@new-server:/var/opt/gitlab/

四、更新配置与重启服务

  1. 检查配置文件
    编辑/etc/gitlab/gitlab.rb,确认关键配置(如外部URL、数据库连接)是否适配新环境:
    external_url 'http://new-server-ip'  # 更新为新服务器地址
    gitlab_rails['gitlab_shell_ssh_port'] = 22  # 若SSH端口变更需调整
    
  2. 重新配置GitLab
    应用配置变更:
    sudo gitlab-ctl reconfigure
    
  3. 启动GitLab服务
    启动所有服务并设置开机自启:
    sudo gitlab-ctl start
    sudo gitlab-ctl enable
    

五、验证迁移结果

  1. 访问Web界面
    通过浏览器访问http://new-server-ip,确认登录页面正常显示。
  2. 检查数据完整性
    • 登录GitLab,验证用户、项目、CI/CD配置是否存在。
    • 进入任意项目,检查代码仓库是否能正常克隆、推送。
    • 查看问题跟踪、Wiki等模块,确认数据无丢失。

注意事项

  • 测试环境演练:生产环境迁移前,务必在测试服务器上模拟流程,避免误操作。
  • 版本兼容性:确保新版本GitLab与旧版本数据格式兼容(参考官方升级文档)。
  • 定期备份:迁移后设置自动备份策略(如每日增量备份),防止数据丢失。
  • 监控性能:迁移后观察新服务器资源占用(CPU、内存、磁盘),确保满足GitLab运行需求。

0