一.简介

备份 GitLab 的具体过程取决于许多因素。您的特定部署的使用和配置决定了存在什么类型的数据、数据位于何处以及数据量有多少。这些因素会影响您执行备份、如何存储数据以及如何恢复数据的选项。少于100G的简单备份方法,备份对象为配置文件、git存储库等,备份地址为本地服务,备份和恢复官方指导地址。

配置文件

#至少备份
/etc/gitlab/gitlab-secrets.json
/etc/gitlab/gitlab.rb

命令行界面:gitlab可使用命令行备份整个实例。

备份与恢复可以使用rsync

yum -y install rsync

备份命令  多个节点,只需选一个节点执行

gitlab-backup create

备份选项

#压缩备份 默认gzip -c -1  最快
gitlab-backup create
#备份策略选项 如copy策略
gitlab-backup create STRATEGY=copy
#备份文件名 生成的文件名为dump_gitlab_backup.tar
gitlab-backup create BACKUP=dump

如果gzip用于备份,则恢复不需要任何选项:

gitlab-backup restore

备份到本地挂载的共享存储

配置文件修改

vim /etc/gitlab/gitlab.rb

gitlab_rails['backup_upload_connection'] = {
  :provider => 'Local',
  :local_root => '/mnt/backups'
}

# The directory inside the mounted folder to copy backups to
# Use '.' to store them in the root directory
gitlab_rails['backup_upload_remote_directory'] = 'gitlab_backups'

备份存档权限

vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_archive_permissions'] = 0644

配置cron进行每日备份

#每天凌晨 2 点进行备份
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1

备份文件保存时间

vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_keep_time'] = 604800

二.执行备份 使用默认配置

1.备份

#执行备份
gitlab-backup create
#查看备份文件
ls /var/opt/gitlab/backups/
1723975732_2024_08_18_15.9.3_gitlab_backup.tar

警告:Warning: Your gitlab.rb and gitlab-secrets.json files contain sensitive data  and are not included in this backup. You will need these files to restore a backup. Please back them up manually.

#手动备份两个配置文件
cd /etc/gitlab/
cp gitlab.rb gitlab.rb_`date +%s`
cp gitlab-secrets.json gitlab-secrets.json_`date +%s`

2.恢复

#停止写入相关服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq
gitlab-ctl stop nginx
#恢复 因为是gzip压缩的,可以不指定文件名  过程输入两个YES
gitlab-backup restore
#重启服务
gitlab-ctl restart

三.升级与迁移

0.升级

不建议升级,升级需要升级到当前同一版本的最新版,然后升级到下一版本的最新版...,然后升级到最新版。

1.迁移

直接安装最新版本,然后旧版本备份,将备份文件恢复到最新版即可。

#旧版本 执行备份
gitlab-backup create
#手动备份两个配置文件
cd /etc/gitlab/
cp gitlab.rb gitlab.rb_`date +%s`
cp gitlab-secrets.json gitlab-secrets.json_`date +%s`

#新版本恢复
gitlab-backup restore
#恢复2个文件 将gitlab.rb和gitlab-secrets.json还原
cd /etc/gitlab/
#重启服务
gitlab-ctl restart