GitLab のバックアップを ConoHa のオブジェクトストレージに自動的に保存する方法


自分だけの設計図共有サイトを作れる、GitLab
最近、標準でバックアップ機能を備えていることを知りました。

バックアップ先として、下記が書かれています。

GitLab imports cloud drivers for AWS, Google, OpenStack Swift, Rackspace and Aliyun as well. A local driver is also available.

このブログでもお世話になっている、ConoHa のオブジェクトストレージは OpenStack Swift ですので、ちょうど利用できそうです。

ただ、公式サイトには Amazon S3、Digital Ocean、Google Cloud Storage の設定例は記載されているのですが、肝心の OpenStack の方法が書いておらず…

そこで今回は、ConoHa のテンプレートイメージを作った GitLab のバックアップを、ConoHa のオブジェクトストレージに保存する機能を紹介します。

GitLab 環境の構築

ConoHa には、アプリケーションイメージとして、GitLab がありますので、それを利用することにより、面倒なインストール作業から解放されます。

ConoHa で GitLab のイメージを使用

🤔.。oO(ブログ記事を書くときに気づいたけど、Matomo ってなんだろう…

30秒くらいで VM が作成。

================================================
Welcome to GitLab image!

URL: http://==IPADDR==/

Enjoy!

To delete this message: rm -f /etc/motd
================================================
# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)

CentOS 7.5 とのことです。

GitLab 10.8.0

GitLab 10.8.0 でした。

ConoHa アプリケーションイメージ GitLab 説明

🤔.。oO(公式サイトには 10.0-64bit [centos-7.4] と書いてあったんだけどな

GitLab バックアップの設定

バックアップの設定は、GUI では設定できず、/etc/gitlab/gitlab.rb を直接編集します。

記載内容は下記です。

gitlab_rails['backup_upload_connection'] = {
'provider' => 'OpenStack',
'openstack_auth_url' => '(Identity Service のエンドポイント)+/tokens',
'openstack_username' => 'gncu…(ユーザー名)',
'openstack_api_key' => '(APIパスワード)',
'openstack_tenant' => 'gnct…(テナント名)'
}
gitlab_rails['backup_upload_remote_directory'] = 'gitlab'

ここで重要なポイント。

  • openstack_auth_url は /v2.0 で止めるのではなく、/tokens まで記載する
  • backup_upload_remote_directory で指定するコンテナは事前に作成する

大抵のクライアントは、/v2.0 までなので要注意です。

変更が終わったら、設定の反映を行います。

# gitlab-ctl reconfigure

バックアップを行うコマンドは下記です。

# gitlab-rake gitlab:backup:create

適当なクライアントで確認します。

CloudBerry Explorer で ConoHa のオブジェクトストレージに保存した GitLab のバックアップを確認

無事バックアップが取れました!

これを、cron で定期的に実行するようにすると良いと思います。


Comments

comments

コメントを残す

メールアドレスが公開されることはありません。

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)