GitLabでリポジトリのバックアップ(backup)を自動化する手順

Git

GitLabは標準でバックアップやリストアのための便利なツールが用意されています。

今回、バックアップの自動化についてまとめました。

スポンサーリンク
スポンサーリンク

GitLabでバックアップ

GitLab omnibusパッケージを使っている場合、GitLabでバックアップするには以下の通りです。

バックアップファイルは、

/var/opt/gitlab/backups/1431352465_gitlab_backup.tar

に作成されます。

GitLab 7.4からは、このバックアップファイルをFogライブラリを使って、

Amazon S3、

Rackspace CloudFiles、

Google Cloud Storage

にアップロード出来るようです。

Fogライブラリは、Rubyで書かれたクラウドサービスライブラリです。

Starting with GitLab 7.4 you can let the backup script upload the '.tar' file it creates.

It uses the Fog library to perform the upload.

In the example below we use Amazon S3 for storage.

But Fog also lets you use other storage providers.

(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/backup_restore.md)

GitLabでバックアップをスケジュール化する

バックアップのスケジュール化の方法は、GitLabの公式サイトに詳しく記載されています。

For omnibus installations

To schedule a cron job that backs up your repositories and GitLab metadata, use the root user:

There, add the following line to schedule the backup for everyday at 2 AM:

You may also want to set a limited lifetime for backups to prevent regular backups using all your disk space. To do this add the following lines to/etc/gitlab/gitlab.rb and reconfigure:

NOTE: This cron job does not backup your omnibus-gitlab configuration or SSH host keys.
(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/backup_restore.md)

このWEBサイトを参考にcronを使って午前2時にバックアップが実行されるようにします。

注意点として、このバックアップではomnibus-gitlabの設定、コンフィグレーションやSSHのキーはバックアップされません。

次に、バックアップを4世代保存するようにします。

60秒 x 60 x 24 x 4世代=345600秒

/etc/gitlab/gitlab.rb

を変更します。

この後、GitLabを再構築します。

Gitについてのおすすめの本

↓Gitについてのおすすめの本はコチラ

Git