背景

目前公司的代码管理服务器是自建的 Gitlab 服务(公司内网),URL链接 http://git.du.com(192.168.2.8), 同时Bitbucket 上也有一份同步的在线代码备份,为保证代码数据的安全性,需要在公司内部也有一份离线备份,故有以下备份恢复方案。

方案

做本方案的目的是保证代码数据的安全而备份,同时一旦代码服务器故障能及时迁移恢复。

Gitlab 的备份与恢复操作涉及两部分:备份、恢复。

  • 备份:从线上 Gitlab 服务器导出备份数据
  • 恢复:从备份数据恢复至 Gitlab 服务器

配置:

  • OS:CentOS 7.2
  • Gitlab 安装包:bitnami-gitlab-8.14.3-0-linux-x64-installer.run
  • 安装路径:/opt/gitlab-8.14.3-0/

操作说明

1.备份

gitlab安装路径为: /opt/gitlab-8.14.3-0/

全程以 root 用户操作。
(1)设定备份目录:

 
  1. vi /opt/gitlab-8.14.3-0/apps/gitlab/htdocs/config/gitlab.yml

修改下图中红圈的路径(文件备份路径)

(2)手动备份

 
  1. cd /opt/gitlab-8.14.3-0/
  2. ./use_gitlab
  3. cd /opt/gitlab-8.14.3-0/apps/gitlab/htdocs
  4. bundle exec bin/rake gitlab:backup:create RAILS_ENV=production

备份过程如下图:

备份完成后查看备份文件在 /opt/backups_gitlab 中会有类似于 1512991116_gitlab_backup.tar 的文件存在。

2.恢复

在新的服务器上安装相同版本的 Gitlab(bitnami-gitlab-8.14.3-0-linux-x64-installer.run)。
安装路径:/opt/gitlab-8.14.3-0
将备份的数据 1512991116_gitlab_backup.tar 放到 /opt/gitlab-8.14.3-0/apps/gitlab/htdocs/config/gitlab.yml 文件中指定的备份路径,如:/opt/backups_gitlab.

 
  1. cd /opt/gitlab-8.14.3-0/
  2. ./use_gitlab
  3. cd /opt/gitlab-8.14.3-0/apps/gitlab/htdocs
  4. bundle exec bin/rake gitlab:backup:restore RAILS_ENV=production BACKUP=1512991116
  5. chown git:git -R /opt/gitlab-8.14.3-0/apps/gitlab/repositories

说明:

BACKUP=timestamp_of_backup #(required if more than one backup exists):
timestamp_of_backup 是备份文件的前缀数字串,如前面提到的 1512991116_gitlab_backup.tar 中的前缀数字串 1512991116

恢复后的帐号和密码保持原来一样。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐