2021年2月26日金曜日

Omnibus Gitlab のオブジェクトストレージの機能を使ってみた

概要

Omnibus Gitlab にはアップロードした画像や CI でビルドした成果物などをオブジェクトストレージにアップロードする機能があります
デフォルトではローカルストレージに保存するため容量が逼迫するおそれがありますがオブジェクトストレージ機能を使うことで回避することができます
今回はオブジェクトストレージ機能の使い方の紹介をしたいと思います
なお今回はニフクラのオブジェクトストレージを使っています
S3 や Google Cloud Storage でも代用可能です

環境

  • Gitlab-ee 13.9.1

バケットの作成

8 つ作成します
公式のドキュメントを見る限り現時点では 8 つの成果物でオブジェクトストレージ機能が使えるようです

バケットの名前はシステムで一意なのですでに使わている場合は別の名前をつけましょう

gitlab.rb の編集

オブジェクトストレージを使う設定を記載します
認証情報と先程作成したバケット情報を記載します

  • vim /etc/gitlab/gitlab.rb
external_url 'https://gitlab.example.com'

gitlab_rails['object_store']['enabled'] = true
gitlab_rails['object_store']['proxy_download'] = true
gitlab_rails['object_store']['connection'] = {
  "provider" => "AWS",
  "region" => "jp-west-1",
  "aws_access_key_id" => "xxxxxxxxxx",
  "aws_secret_access_key" => "xxxxxxxxxxxx",
  "endpoint" => "https://jp-west-1.storage.api.nifcloud.com",
  "aws_signature_version" => 2
}
gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'gitlab-artifacts'
gitlab_rails['object_store']['objects']['external_diffs']['bucket'] = 'gitlab-external-diffs'
gitlab_rails['object_store']['objects']['lfs']['bucket'] = 'gitlab-lfs-objects'
gitlab_rails['object_store']['objects']['uploads']['bucket'] = 'gitlab-uploads'
gitlab_rails['object_store']['objects']['packages']['bucket'] = 'gitlab-packages'
gitlab_rails['object_store']['objects']['dependency_proxy']['bucket'] = 'gitlab-dependency-proxy'
gitlab_rails['object_store']['objects']['terraform_state']['bucket'] = 'gitlab-terraform-state'
gitlab_rails['object_store']['objects']['pages']['bucket'] = 'gitlab-pages'

設定反映

  • gitlab-ctl reconfigure

動作確認

一番簡単な uploads のバケットを使ってみます
適当に issue を作成しコメントにファイルをアップロードしてみましょう

これでオブジェクトストレージ側を見てみるとファイルがアップロードされているのが確認できると思います

注意点

ファイルをアップロードしたコメントを削除してもオブジェクトストレージ側にあるファイルは削除されませんでした
おそらく別の箇所などからもリンクされている可能性があるので削除していないのかと思いますがオブジェクトストレージ側にはファイルが溜まり続ける可能性があるので従量課金の場合は注意しましょう

最後に

今回は uploads だけ試しましたが dependency_proxyterraform_state などもあるので興味があればどの機能に対応しているか調べてみると良いかなと思います

参考サイト

0 件のコメント:

コメントを投稿