debian

Debian GitLab的备份恢复流程是怎样的

小樊
39
2025-11-07 12:25:31
栏目: 智能运维

Debian GitLab备份恢复流程

一、备份流程

1. 停止相关服务(可选但推荐)
为确保备份数据的完整性和一致性,建议备份前停止GitLab的关键服务(如unicorn、sidekiq):

sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

2. 创建备份
使用GitLab内置的rake命令生成备份文件,默认存储路径为/var/opt/gitlab/backups

sudo gitlab-rake gitlab:backup:create

执行后会生成类似1712345678_2025_11_07_12.0.0_gitlab_backup.tar的文件(文件名包含时间戳和版本号)。

3. 配置备份路径与过期时间
若需修改默认备份路径或设置备份保留期限,编辑配置文件/etc/gitlab/gitlab.rb

sudo vim /etc/gitlab/gitlab.rb

添加或修改以下参数(示例为将备份路径改为/data/gitlab/backups,保留7天):

gitlab_rails['backup_path'] = "/data/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800  # 单位:秒(7天)

修改后重载配置使生效:

sudo gitlab-ctl reconfigure

4. 定时备份(自动化)
通过crontab设置定时任务,例如每天凌晨2点执行备份并删除10天前的旧备份:

# 编辑定时任务
sudo crontab -e

添加以下内容:

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create && find /var/opt/gitlab/backups -name "*.tar" -type f -mtime +10 -exec rm -rf {} \;

5. 备份敏感配置文件(额外步骤)
为避免配置丢失,需单独备份GitLab的关键配置文件和敏感数据:

sudo cp /etc/gitlab/gitlab.rb /data/gitlab/backups/
sudo cp /etc/gitlab/gitlab-secrets.json /data/gitlab/backups/
sudo cp -r /etc/ssl/gitlab /data/gitlab/backups/ssl/

二、恢复流程

1. 准备新服务器
在新Debian服务器上安装与原服务器版本一致的GitLab(可通过apt或官方镜像安装),确保基础环境配置正确。

2. 拷贝备份文件
将旧服务器/var/opt/gitlab/backups目录下的备份文件(含敏感配置文件)复制到新服务器的相同路径(如/var/opt/gitlab/backups),可使用scprsync工具:

scp -r user@old_server:/var/opt/gitlab/backups/* /var/opt/gitlab/backups/

3. 恢复数据
执行恢复命令,需替换BACKUP_NUMBER为备份文件的编号(从备份文件名中提取,如1712345678_2025_11_07_12.0.0):

# 停止相关服务
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq

# 执行恢复(注意:恢复会覆盖现有数据!)
sudo gitlab-rake gitlab:backup:restore BACKUP=1712345678_2025_11_07_12.0.0

# 按提示输入两次"yes"确认恢复

4. 启动GitLab服务
恢复完成后,重启GitLab所有服务:

sudo gitlab-ctl restart

5. 验证恢复结果
打开浏览器访问GitLab Web界面(如http://服务器IP),使用原账户登录,检查项目、代码库、用户权限等数据是否完整恢复。

注意事项

0
看了该问题的人还看了