Gitlab简易热备方案
此方案为个人测试方案,部分内容摘录官方指导手册,用于yum安装的gitlab数据实时备份。此备份方案可行性的前提,本着一切皆文件的原则,利用rsync实现gitlab的实时备份。
适用于gitlab服务单点故障无法启动的情况,从而实现利用备用节点恢复gitlab。
缺点:备用gitlab仍需要手动设置并启用;需同步的数据较为分散容易遗漏
正文
1、确定gitlab需要同步的数据范围 !!!
实现gitlab数据的同步需要确定各个存储数据的目录,存在几处数据目录,就需要同步几处。
此处可参考gitlab官网介绍,gitlab文件存储位置:https://docs.gitlab.com/ee/development/file_storage.html
a. 各存储目录如下:
- db (数据库)
- uploads (附件)
- repositories (Git仓库数据)
- builds (CI作业输出日志)
- artifacts (CI工作工件)
- lfs (LFS对象)
- registry (容器注册表图像)
- pages (页面内容)
b. gitlab-secrets.json 文件(此文件包含了gitlab的配置信息)
2、设置备份服务器环境
如果需要gitlab备份服务器具备可切换为正式服务的条件,可提前安装好与正式环境一致的gitlab服务。
将实时备份的数据,直接同步到备份服务器gitlab的各个对应目录
注:gitlab数据库key文件不可变更,它与gitlab服务是有依赖的,如果变动数据库将无法启动,数据同步时需忽略同步以下两个文件
server.crt(数据库服务连接的证书)
server.key
3、在gitlab正式环境和备份环境,安装lsyncd+rsync同步工具
以下同步只列举了gitlab单个目录,其他需要同步的目录,可依此增加
##正式环境,安装rsync和lsync