优雅管理 GitLab:全面备份与恢复指南
温馨提示:
本文最后更新于 2025年07月23日,已超过 51 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
在企业级项目中,GitLab 扮演着核心的代码托管与持续集成平台角色。定期备份与快速恢复是保障业务连续性的关键。本文将带你一步步:
- 自定义备份存储路径
- 备份 GitLab 关键配置与数据
- 执行备份操作
- 在新服务器上恢复 GitLab 实例
- 更新外部访问地址
一、自定义备份存储路径
默认情况下,GitLab 会将备份文件存放在 /var/opt/gitlab/backups
。如需更改到其他目录:
编辑配置文件:
sudo vi /etc/gitlab/gitlab.rb `
添加或修改以下行,将路径替换为你所需位置:
gitlab_rails['backup_path'] = "/data/gitlab/backups"
使配置生效:
sudo gitlab-ctl reconfigure
二、备份关键配置与数据
除了 GitLab 自带的数据备份,还需保留以下关键文件,确保恢复后服务配置无遗漏:
- GitLab 主配置文件
/etc/gitlab/gitlab.rb
- Nginx 配置
/var/opt/gitlab/nginx/conf
- Postfix 邮件服务配置
/etc/postfix/main.cf
可将上述文件打包或同步到远程存储,以便灾难恢复时快速恢复。
三、执行备份
在确保目标存储路径空间充足后,运行以下命令进行全量备份:
sudo gitlab-rake gitlab:backup:create
执行成功后,备份目录下会生成以时间戳命名的 .tar
文件,包含所有仓库、数据库及上传文件等。
四、在新服务器上恢复 GitLab 实例
新服务器安装 GitLab
按官方文档完成相同版本的 GitLab 安装。拷贝备份文件
将.tar
备份包以及关键配置文件同步到新服务器:scp backup.tar root@new-server:/var/opt/gitlab/backups/ scp gitlab.rb main.cf nginx-conf/ root@new-server:/etc/gitlab/
停止 GitLab 服务
sudo gitlab-ctl stop unicorn sudo gitlab-ctl stop sidekiq
设置备份包权限
sudo chmod 600 /var/opt/gitlab/backups/backup.tar
执行恢复
假设备份文件名为1612753347_2021_02_08_gitlab_backup.tar
,则运行:sudo gitlab-rake gitlab:backup:restore BACKUP=1612753347_2021_02_08
系统会提示输入
yes
两次以确认操作。启动服务
sudo gitlab-ctl start
至此,GitLab 数据与配置已在新服务器上完整恢复。
五、更新外部访问地址
若新服务器 IP 或端口与原环境不同,可在配置文件中修改 external_url
:
sudo vi /etc/gitlab/gitlab.rb
定位并修改为新的访问地址,例如:
external_url 'http://10.20.31.133:8000'
保存后,执行:
sudo gitlab-ctl reconfigure
完成后,访问 http://10.20.31.133:8000
即可使用恢复后的 GitLab。
通过上述步骤,你可以灵活定制备份路径、保全关键配置,并实现快速、可靠的跨机房容灾恢复。定期演练,方能无忧应对突发故障,保障团队协作与持续集成的稳定运行!
正文到此结束
- 本文标签: gitlab
- 本文链接: https://code.itptg.com/article/121
- 版权声明: 本文由老魏原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权