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 がありますので、それを利用することにより、面倒なインストール作業から解放されます。
🤔.。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 でした。
🤔.。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
適当なクライアントで確認します。
無事バックアップが取れました!
これを、cron で定期的に実行するようにすると良いと思います。