温馨提示×

GitLab在CentOS上的备份与恢复流程是什么

小樊
35
2025-11-21 20:41:05
栏目: 智能运维

CentOS上GitLab的备份与恢复流程

一 备份流程

  • 准备与配置

    • 编辑配置文件:/etc/gitlab/gitlab.rb,可自定义备份目录与保留时间:
      • 备份目录:gitlab_rails[‘backup_path’] = “/opt/gitlab-backups”
      • 保留时间(秒):gitlab_rails[‘backup_keep_time’] = 2592000(30天)
    • 使配置生效:gitlab-ctl reconfigure。默认备份目录为:/var/opt/gitlab/backups。建议同时备份配置文件:/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json
  • 手动立即备份

    • 执行备份命令:gitlab-rake gitlab:backup:create(或新语法:gitlab-backup create)。
    • 备份文件命名规则:常见为**<时间戳>gitlab_backup.tar**,或包含版本信息的**<时间戳><日期>_<版本>_gitlab_backup.tar**;文件默认位于前述备份目录。
  • 定时自动备份

    • 使用 crontab -e 添加计划任务,例如每天 02:00 执行:
      • 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
    • 可按需设置保留策略(如保留30天),或在备份完成后执行脚本进行异地拷贝与清理

二 恢复流程

  • 准备

    • 将备份文件拷贝到目标服务器的备份目录(默认:/var/opt/gitlab/backups),并确保目标机器的 GitLab 版本与备份时一致,以避免兼容性问题。
  • 执行恢复

    • 为保持一致性,先停止相关服务:
      • gitlab-ctl stop unicorn
      • gitlab-ctl stop sidekiq
    • 执行恢复(两种等价方式,二选一):
      • 使用备份编号:gitlab-rake gitlab:backup:restore BACKUP=1481598919
      • 使用完整文件名:gitlab-rake gitlab:backup:restore BACKUP=1700647561_2023_11_22_13.12.15_gitlab_backup.tar
    • 恢复过程中通常会有两次交互式确认,输入 yes 继续;恢复完成后启动服务:gitlab-ctl start
  • 迁移场景补充

    • 在新服务器恢复后,按需调整 /etc/gitlab/gitlab.rb 中的 external_url 与邮件等配置,执行 gitlab-ctl reconfigure 并重启,确保外部访问与通知正常。

三 注意事项与最佳实践

  • 版本一致性:恢复时尽量保持 GitLab 版本一致;若需跨版本,请先规划升级路径并在同版本间恢复验证。
  • 配置与密钥:除数据备份外,务必单独备份并妥善保存 /etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json,否则可能影响 LDAP/SMTP/Runner 等功能与账户安全。
  • 存储与保留:备份文件通常较大,提前规划磁盘空间;可通过 backup_keep_time 或外部脚本实现定期清理与异地归档
  • 一致性与可用性:恢复前尽量避免新写入;恢复后执行 gitlab-rake gitlab:check 自检,并验证 仓库、Issues、CI/CD、Runner 等核心功能。

0