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


2019/04/08:バージョン 11.9 以降では手順が少し変わっていますのでブログ記事を公開しました。


自分だけの設計図共有サイトを作れる、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

コメントを残す

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

*

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