debian

Debian系统中GitLab如何备份与恢复

小樊
60
2025-09-26 02:05:38
栏目: 智能运维

Debian系统中GitLab备份与恢复指南

一、备份操作步骤

1. 停止相关服务(可选但推荐)

为确保备份数据的完整性和一致性,建议在备份前停止GitLab的关键服务(unicorn和sidekiq):

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

2. 执行备份命令

使用GitLab内置的gitlab-rake工具创建备份,默认备份文件会保存到/var/opt/gitlab/backups目录:

sudo gitlab-rake gitlab:backup:create

备份文件命名格式为TIMESTAMP_gitlab_backup.tar(如1716000000_gitlab_backup.tar),其中TIMESTAMP为备份创建的时间戳。

3. 修改备份路径(可选)

若需更改备份文件的存储位置,可编辑GitLab配置文件/etc/gitlab/gitlab.rb,添加或修改以下参数:

gitlab_rails['backup_path'] = "/data/gitlab/backups"  # 自定义备份目录(需提前创建)

修改完成后,运行以下命令使配置生效:

sudo gitlab-ctl reconfigure

4. 设置定时备份(可选)

通过crontab设置定时任务,实现自动备份。例如,每天凌晨2点执行备份:

# 编辑当前用户的crontab
sudo crontab -e

添加以下内容(需替换为实际备份脚本路径):

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

若需自动删除超过7天的旧备份,可将以下命令添加到备份脚本末尾:

find /var/opt/gitlab/backups -name "*.tar" -type f -mtime +7 -exec rm -rf {} \;

5. 备份敏感配置文件

备份文件不包含GitLab的关键配置(如gitlab.rbgitlab-secrets.json)和SSL证书,需手动备份这些文件:

sudo cp /etc/gitlab/gitlab.rb /path/to/secure/backup/
sudo cp /etc/gitlab/gitlab-secrets.json /path/to/secure/backup/
sudo cp -r /etc/ssl/gitlab/ /path/to/secure/backup/  # 若SSL证书存放在该目录

二、恢复操作步骤

1. 准备工作

2. 拷贝备份文件

将备份文件(如1716000000_gitlab_backup.tar)复制到目标服务器的gitlab_rails['backup_path']目录(如/var/opt/gitlab/backups或自定义目录)。

3. 执行恢复命令

使用gitlab-rake工具恢复备份,需指定备份文件的TIMESTAMP(即备份文件名中的时间戳,不含扩展名):

sudo gitlab-rake gitlab:backup:restore BACKUP=1716000000

执行过程中会提示确认恢复操作,输入yes并按回车键继续。

4. 恢复敏感配置文件

将之前手动备份的配置文件复制回原位置:

sudo cp /path/to/secure/backup/gitlab.rb /etc/gitlab/
sudo cp /path/to/secure/backup/gitlab-secrets.json /etc/gitlab/
sudo cp -r /path/to/secure/backup/gitlab/ /etc/ssl/  # 若SSL证书存放在该目录

5. 重载配置并启动服务

恢复完成后,重载GitLab配置并启动所有服务:

sudo gitlab-ctl reconfigure  # 使配置文件变更生效
sudo gitlab-ctl start        # 启动所有GitLab服务

6. 验证恢复结果

三、注意事项

0
看了该问题的人还看了