概要
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_proxy
や terraform_state
などもあるので興味があればどの機能に対応しているか調べてみると良いかなと思います
0 件のコメント:
コメントを投稿