Gitlab备份还原

实验前提

官方文档
本次实验条件:

  1. Omnibus版本
  2. Gitlab12.1及更早版本(我们是10.8)
  3. 准备两台相同版本的Gitlab,最好是新部署,还没创建项目
    注意:备份还原会将新的仓库所有现有数据删除 (SQL) 或移动到单独的目录

1. 先决条件

GitLab 提供了一个命令行界面来备份整个实例,包括:

  • 数据库
  • 附件
  • Git 存储库数据
  • CI/CD 作业输出日志
  • CI/CD 作业工件
  • LFS 对象
  • Container Registry 映像
  • Gitlab (页面内容)
  • Snippets (片段)
  • Group wikis (维基组)

备份不包括:

  • Terraform 状态文件
  • 包注册表文件
  • Mattermost数据

备份配置文件和隐私配置文件

#备份好并还原到新Gitlab
cp /etc/gitlab/gitlab.rb /data/
cp /etc/gitlab/gitlab-secrets.json /data/

2. 备份Gitlab

执行备份命令后,会在/var/opt/gitlab/backups目录生成文件名是[TIMESTAMP]_gitlab_backup.tar的备份文件。TIMESTAMP表示每个备份的创建时间,例如,如果备份名称为1493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar,则时间戳为1493107454_2018_04_25_10.6.4-c

#开始备份Gitlab数据
gitlab-rake gitlab:backup:create

3. 恢复Gitlab

先决条件:

  • 您已经安装了与创建备份完全相同的 GitLab Omnibus版本和类型 (CE/EE)。
  • 你sudo gitlab-ctl reconfigure至少跑过一次。
  • GitLab 正在运行。如果没有,请使用sudo gitlab-ctl start.

备份文件放到指定目录

cp 11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar /var/opt/gitlab/backups/
chown git.git /var/opt/gitlab/backups/11493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar

停止连接到数据库的进程。让 GitLab 的其余部分保持运行:

sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
#检查
sudo gitlab-ctl status

恢复Gitlab

#配置恢复
cp gitlab-secrets.json gitlab.rb /etc/gitlab/
#备份恢复
gitlab-rake gitlab:backup:restore
#从指定备份恢复Gitlab
gitlab-rake gitlab:backup:restore BACKUP=1530156812_2018_06_28_10.8.4

注意:gitlab-rake gitlab:backup:restore没有在您的注册表目录上设置正确的文件系统权限。这是一个已知问题。在 GitLab 12.2 或更高版本中,您可以使用gitlab-backup restore来避免此问题

重新配置、重启并检查 GitLab

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值