- 首页 >
- 问答 >
-
智能运维 >
- GitLab在CentOS上的备份与恢复流程是什么
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 等核心功能。