GitLabでリポジトリのバックアップ、リストアを自動化する設定、世代、場所、容量

スポンサーリンク
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を再構築します。

 

 

別の例を見てみましょう。

 

実際のサーバー運用に合わせて、例えば、

  • 毎週1回、土曜日にバックアップを作成。
  • 4世代保持する。

という場合を考えてみましょう。

 

crontabは、左から分、時、日、月、曜日を指定するので、毎週土曜日の深夜2時にバックアップを実行するには以下のように設定します。

ここで0が月曜日、1が火曜日となり、6が土曜日です。

 

 

バックアップが保持される時間を30日に設定します。

60秒 x 60 x 24 x 30日=2592000秒

 

/etc/gitlab/gitlab.rb

を変更します。

 

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

 

GitLabのバックアップの保存場所

ここまでで見てきたように、GitLabのバックアップの保存場所は

/var/opt/gitlab/backups

です。

 

このディレクトリに以下のようにtar形式でバックアップされます。

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

 

このファイルは、

/var/opt/gitlab/git-data/repositories/

のリポジトリをまとめたものです。

 

GitLabのバックアップの容量

GitLabのバックアップファイルは

/var/opt/gitlab/git-data/repositories/

をまとめたものなので、容量はリポジトリの大きさと同程度になります。

 

GitLabのバックアップのリストア、復元

GitLabのバックアップのリストア、復元の方法は次の通りです。

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

がバックアップされたファイルとします。

 

以下のコマンドでリポジトリはリストアされて復元されます。

 

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

 

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

Git

 

 

コメント