首页主机资讯ubuntu上gitlab的数据迁移方法是什么

ubuntu上gitlab的数据迁移方法是什么

时间2025-11-27 11:49:03发布访客分类主机资讯浏览546
导读:Ubuntu 上 GitLab 数据迁移方法 一 迁移总览与前置条件 迁移思路为:在原服务器创建备份,将备份与关键配置文件拷贝到新服务器,在新服务器用相同版本的 GitLab 执行恢复,最后校验数据。迁移前务必确认两端 GitLab 版本...

Ubuntu 上 GitLab 数据迁移方法

一 迁移总览与前置条件

  • 迁移思路为:在原服务器创建备份,将备份与关键配置文件拷贝到新服务器,在新服务器用相同版本的 GitLab 执行恢复,最后校验数据。迁移前务必确认两端 GitLab 版本一致(建议精确到小版本),否则恢复可能失败或数据不一致。备份工具默认不备份配置文件与密钥,需单独拷贝。备份通常包含:数据库、仓库、附件、CI/CD 作业输出与工件、LFS 对象、容器镜像、Pages、包、Terraform 状态等;不包含:Redis/Sidekiq 运行时、配置文件、TLS 证书、系统文件。若使用 PgBouncer,备份需额外参数。以上要点适用于 Omnibus 包与 Docker 部署。

二 在原服务器创建备份

  • Omnibus 包安装(Ubuntu 常见):
    • 查看版本:cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    • 创建备份(GitLab 12.2+):sudo gitlab-backup create;旧版本可用:sudo gitlab-rake gitlab:backup:create
    • 备份默认目录:/var/opt/gitlab/backups,文件名形如 1658368484_2022_07_21_14.8.2_gitlab_backup.tar。如需改目录,在 /etc/gitlab/gitlab.rb 设置 gitlab_rails['backup_path'] = '/your/path' 并执行 sudo gitlab-ctl reconfigure 生效。
  • Docker 部署:
    • 查看容器名:docker ps
    • 创建备份(GitLab 12.2+):docker exec -t < 容器名> gitlab-backup create
    • 备份通常位于容器内挂载的 /var/opt/gitlab/backups,对应宿主机目录需提前挂载(常见为 /srv/gitlab/data/backups)。

三 拷贝备份与配置文件到新服务器

  • 必传内容:
    • 备份包(如:1658368484_2022_07_21_14.8.2_gitlab_backup.tar
    • 配置文件与密钥:/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json
    • 如使用 HTTPS,建议同时备份 /etc/gitlab/ssl/etc/gitlab/trusted-certs;如使用容器,确保挂载了配置卷(常见为 /srv/gitlab/config)。
  • 拷贝示例(Omnibus):
    • scp /var/opt/gitlab/backups/1658368484_2022_07_21_14.8.2_gitlab_backup.tar root@新服务器:/var/opt/gitlab/backups/
    • scp /etc/gitlab/gitlab.rb root@新服务器:/etc/gitlab/gitlab.rb
    • scp /etc/gitlab/gitlab-secrets.json root@新服务器:/etc/gitlab/gitlab-secrets.json
  • 注意:备份 Rake 任务不会包含配置文件与密钥,必须手动拷贝;否则可能导致 2FACI/CD 变量等解密失败。

四 在新服务器恢复与验证

  • 安装相同版本 GitLab(Omnibus):
    • 查看旧服务器版本并下载对应版本安装包(如:gitlab-ce_14.8.2-ce.0_amd64.deb
    • 安装:sudo dpkg -i gitlab-ce_*.deb & & sudo gitlab-ctl reconfigure
    • 将新服务器的 external_url/etc/gitlab/gitlab.rb 调整为目标访问地址并 gitlab-ctl reconfigure
  • 恢复步骤(Omnibus):
    • 确认备份文件属主为 git:git,权限建议 0600chown git:git /var/opt/gitlab/backups/*.tar & & chmod 0600 /var/opt/gitlab/backups/*.tar
    • 停止连接服务:sudo gitlab-ctl stop unicorn & & sudo gitlab-ctl stop sidekiq
    • 执行恢复(BACKUP 为时间戳前缀,不含 “.tar”):sudo gitlab-rake gitlab:backup:restore BACKUP=1658368484_2022_07_21_14.8.2
    • 启动服务:sudo gitlab-ctl start
    • 如遇 PostgreSQL 扩展权限错误(如:must be owner of extension pg_trgm/btree_gist),可在恢复前临时将数据库属主切给 gitlab-psql 所属用户,恢复后再改回。
  • Docker 恢复要点:
    • 将备份包放入宿主机挂载目录(如:/srv/gitlab/data/backups),确保 /srv/gitlab/config 已包含 gitlab.rbgitlab-secrets.json
    • 停止容器:docker stop gitlab
    • 进入容器执行恢复:docker exec -it gitlab gitlab-backup restore BACKUP=1658368484_2022_07_21_14.8.2
    • 启动容器:docker start gitlab
    • 若使用非默认备份目录,需在容器内设置 GITLAB_BACKUPS 环境变量或在挂载目录中放置备份。
  • 验证与常见问题:
    • 登录 Web 检查:项目、仓库、LFS、CI/CD 作业、Runner、Pages、容器镜像、用户与权限、2FA 是否正常。
    • external_url 变更,需同步调整 GitLab Pages 域名Runner 注册令牌WebhooksSSH/HTTPS 克隆地址 等。
    • 迁移后首次启动若报错,优先检查:版本一致性、备份文件属主与权限、配置文件与密钥是否正确就位。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu上gitlab的数据迁移方法是什么
本文地址: https://pptw.com/jishu/757731.html
ubuntu上gitlab的插件与扩展如何使用 gitlab在ubuntu上的多用户协作如何实现

游客 回复需填写必要信息