首页主机资讯ubuntu下gitlab迁移方法

ubuntu下gitlab迁移方法

时间2025-11-17 10:34:03发布访客分类主机资讯浏览432
导读:Ubuntu 下 GitLab 迁移实操指南 一 迁移总览与前置准备 迁移思路:在新服务器安装与旧服务器相同版本的 GitLab,先迁移备份包,再迁移密钥与配置,最后执行恢复与验证。 版本核对:在两台机器上查看版本,确保一致(示例命令适用...

Ubuntu 下 GitLab 迁移实操指南

一 迁移总览与前置准备

  • 迁移思路:在新服务器安装与旧服务器相同版本的 GitLab,先迁移备份包,再迁移密钥与配置,最后执行恢复与验证。
  • 版本核对:在两台机器上查看版本,确保一致(示例命令适用于 Omnibus 包)
    • 查看版本:cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
    • 安装相同版本:在 Ubuntu 上用官方软件源或下载对应版本的 .deb 包后执行 dpkg -i gitlab-ce_XX.XX.X-ce.0_amd64.deb,然后 gitlab-ctl reconfigure
  • 关键文件与目录:
    • 备份包默认目录:/var/opt/gitlab/backups
    • 密钥与配置:/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json(迁移时建议一并拷贝,避免密码、密钥不一致导致问题)。

二 旧服务器备份

  • 手动创建备份(GitLab 需处于运行状态):
    • 命令:gitlab-rake gitlab:backup:create
    • 备份包命名示例:1684461274_2023_05_19_13.12.2_gitlab_backup.tar(其中时间戳+版本号是识别关键)。
  • 备份文件位置与保留策略:
    • 默认位置:/var/opt/gitlab/backups
    • 可在 /etc/gitlab/gitlab.rb 中自定义备份目录与保留时间,例如:
      • gitlab_rails['backup_path'] = "/data/backup/gitlab"
      • gitlab_rails['backup_keep_time'] = 604800(保留 7 天,单位秒)
    • 使配置生效:gitlab-ctl reconfigure
  • 定时备份(可选):
    • 示例(每天 1 点):0 1 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
  • 建议同时拷贝密钥与配置:
    • scp /etc/gitlab/gitlab.rb root@新服务器:/etc/gitlab/
    • scp /etc/gitlab/gitlab-secrets.json root@新服务器:/etc/gitlab/
    • 注意:备份包不包含上述两个敏感文件,迁移时务必单独处理。

三 新服务器恢复

  • 放置备份包:
    • 将备份 tar 放入默认备份目录:/var/opt/gitlab/backups
    • 如自定义了备份目录,请放到对应目录并赋权(示例:chown -R git:git /data/backup/gitlab)。
  • 权限与准备:
    • 备份包权限建议至少对运行用户可读,常见做法为 chmod 600chown git:git;在部分环境中为规避权限问题会使用 chmod 777(仅在可信内网临时使用)。
  • 停止写入服务并恢复:
    • 停止服务:gitlab-ctl stop unicorngitlab-ctl stop sidekiq
    • 执行恢复(BACKUP 值为时间戳+版本,不含“.tar”后缀):
      • 示例:gitlab-rake gitlab:backup:restore BACKUP=1684461274_2023_05_19_13.12.2
      • 恢复过程中会提示清理数据库并输入 yes 确认,等待完成。
  • 启动与验证:
    • 启动:gitlab-ctl start
    • 访问 Web 并核对项目、用户、密钥、Runner 注册等是否完整。

四 迁移后配置与验证

  • 配置访问地址:
    • 编辑 /etc/gitlab/gitlab.rb,设置 external_url 'http://新服务器IP:端口'(或域名),然后 gitlab-ctl reconfigure 使配置生效。
  • 密钥与配置核对:
    • 确认 /etc/gitlab/gitlab-secrets.json 与旧环境一致(用于加密与签名,缺失会导致登录、Webhooks、Runner 等异常)。
  • 服务状态与日志:
    • 状态检查:gitlab-ctl status
    • 日志排查:gitlab-ctl tail(如 nginx、sidekiq、postgresql 等组件异常时定位问题)。
  • 首次登录与密码:
    • 若未导入旧管理员凭据,可通过控制台重置 root 密码:
      • gitlab-rails console
      • u = User.where(username: 'root').first
      • u.password = '新密码'; u.password_confirmation = '新密码'; u.save!
      • exit
  • 常见现象与处理:
    • 页面短暂 502 属正常,等待组件就绪或刷新即可。
    • 如出现组件端口冲突(如 9100 被占用),检查并释放端口后重启服务。

五 常见问题与进阶建议

  • 版本不一致:恢复会失败或异常,推荐先保持同版本迁移,迁移完成后再按官方升级路径逐步升级。
  • 备份包过大与超时:
    • 可在恢复前停止写入服务,恢复完成后再启动;确保磁盘空间充足与网络稳定。
  • 自定义备份目录:
    • 修改 /etc/gitlab/gitlab.rbgitlab_rails['backup_path'] 与权限后执行 gitlab-ctl reconfigure
  • 仓库数据目录迁移(可选):
    • 如需将仓库数据目录迁移到新磁盘,可修改 git_data_dirs 路径并使用 rsync 同步后 reconfigure 生效。
  • 定时备份与保留策略:
    • 建议配置 backup_keep_time 与定时任务,避免磁盘被旧备份占满。

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


若转载请注明出处: ubuntu下gitlab迁移方法
本文地址: https://pptw.com/jishu/748706.html
Debian dhcp如何进行安全审计 Debian env命令执行失败原因是什么

游客 回复需填写必要信息