Omnibus GitLab 高可用性ロール
Omnibus GitLabには、高可用性設定でGitLabを実行するための様々なソフトウェアコンポーネント/サービスが含まれています。デフォルトでは、これらのサポート・サービスのいくつかは無効になっており、Omnibus GitLabはシングル・ノード・インストールとして実行されるように設定されています。各サービスは/etc/gitlab/gitlab.rb
の設定を使って有効または無効にすることができますが、roles
の導入により、サービスのグループを簡単に有効にすることができ、有効にした高可用性ロールに基づいたより良いデフォルト設定が提供されます。
ロールを指定しない(デフォルト設定)
GitLabにロールを設定しない場合、GitLabはシングルノードインストールのデフォルトサービスを有効にします。PostgreSQL、Redis、Puma、Sidekiq、Gitaly、GitLab Workhorse、NGINXなどが含まれます。
これらは/etc/gitlab/gitlab.rb
の設定で個別に有効/無効にすることができます。
ロールの指定
ロールは/etc/gitlab/gitlab.rb
複数のロールを指定する例:
roles ['redis_sentinel_role', 'redis_master_role']
単一のロールを指定する例:
roles ['geo_primary_role']
ロール
以下のロールの大部分はGitLab Enterprise Edition、つまりgitlab-ee
Omnibusパッケージでのみ動作します。各ロールの横に記載されています。
GitLab アプリロール
-
application_role(
gitlab-ce
/gitlab-ee
)GitLab Appロールは、GitLabのみを実行するインスタンスを設定するために使用します。Redis、PostgreSQL、Consulのサービスはデフォルトでは無効になっています。
Redisサーバのロール
Redisロールの使用に関するドキュメントはConfiguring Redis for Scalingにあります。
-
redis_sentinel_role(
gitlab-ee
)マシンのセンチネルサービスを有効にします、
デフォルトでは、他のサービスは有効にしません。
-
redis_master_role(
gitlab-ee
)Redis サービスと監視を有効にし、マスターパスワードの設定を可能にします。
デフォルトでは、他のサービスは有効にしません。
-
redis_replica_role(
gitlab-ee
, GitLab 13.0 で導入)Redis サービスと監視を有効にします。
デフォルトでは、他のサービスは有効にしません。
GitLab Geoロール
GitLab GeoロールはGitLab Geoサイトの設定に使用します。設定手順についてはGeo Setup Documentationを参照してください。
-
geo_primary_role(
gitlab-ee
)このロール
- シングルノードのPostgreSQLデータベースをストリーミングレプリケーションのリーダーとして設定します。
- Geoセカンダリサイトへのストリーミングレプリケーションのダウンタイムが必要なため、PostgreSQLの自動アップグレードを防ぎます。
- NGINX、Puma、Redis、Sidekiqを含むすべてのシングルノードGitLabサービスを有効にします。サービスを分離している場合は、
/etc/gitlab/gitlab.rb
で不要なサービスを明示的に無効にする必要があります。したがって、このロールはGeoプライマリサイトのシングルノードPostgreSQLでのみ有効です。 - GeoプライマリサイトのPostgreSQLクラスターのセットアップには使用できません。代わりに、Geo複数ノードデータベースレプリケーションを参照してください。
デフォルトでは、NGINX、Puma、Redis、Sidekiqを含む標準的なシングルノードのGitLabサービスを有効にします。
-
geo_secondary_role(
gitlab-ee
)- 受信レプリケーション用のセカンダリ読み取り専用レプリカデータベースを設定します。
- Geo トラッキングデータベースへの Rails 接続を設定します。
- Geo トラッキングデータベース
geo-postgresql
を有効にします。 - Geo ログカーソルを有効にする
geo-logcursor
. - 再構成時に、読み取り専用レプリカデータベースの自動データベースマイグレーションを無効にします。
- Puma ワーカーの数を減らして他のサービスのメモリを節約します。
-
gitlab_rails['enable'] = true
を設定します。
このロールは、単一ノード上で動作する Geo セカンダリノードサイトで使用することを想定しています。複数のノードを持つ Geo サイトでこのロールを使用する場合、不要なサービスは
/etc/gitlab/gitlab.rb
で明示的に無効にする必要があります。複数ノードについては Geo を参照してください。このロールは Geo セカンダリサイトで PostgreSQL クラスターをセットアップするために使用すべきではありません。代わりに、Geo複数ノードデータベースレプリケーションを参照してください。
デフォルトでは、GitLabデフォルトのシングルノードサービスをすべて有効にします。(NGINX、Puma、Redis、Sidekiqなど)。
監視ロール
GitLab 12.1 で導入されました。
監視ロールはインストールの監視を設定するために使用します。詳細については、監視のドキュメントを参照してください。
-
monitoring_role(
gitlab-ce
/gitlab-ee
)メトリクスを収集し、ダッシュボードを提供する中央監視サーバーを設定します。
Prometheus と Alertmanager を有効にします。
PostgreSQLのロール
PostgreSQLロールの使用法に関するドキュメントはConfiguring PostgreSQL for Scalingにあります。
-
postgres_role(
gitlab-ce
/gitlab-ee
)マシンの PostgreSQL と Consul サービスを有効にします。
デフォルトでは、他のサービスは有効にしません。
-
patroni_role(
gitlab-ee
, GitLab 13.8 で導入)マシンの PostgreSQL、patroni、Consul サービスを有効にします。
デフォルトでは、他のサービスは有効にしません。
-
pgbouncer_role(
gitlab-ee
)マシンのPgBouncerとConsulサービスを有効にします。
デフォルトでは、他のサービスは有効にしません。
-
consul_role(
gitlab-ee
)マシンでConsulサービスを有効にします
デフォルトでは、他のサービスは有効にしません。
GitLab Pagesのロール
GitLab 13.6で導入されました。
GitLab Pagesのロールは、GitLab Pagesの設定と構成に使用されます。詳細については、GitLab Pages Administrationドキュメントを参照してください。
-
pages_role(
gitlab-ce
/gitlab-ee
)GitLab Pages インスタンスをサーバーに設定します。
デフォルトでは、他のサービスは有効にしません。
Sidekiq ロール
GitLab 14.1 で導入されました。
Sidekiqロールは、Sidekiqの設定と構成に使用されます。詳細については、Sidekiq管理ドキュメントをご覧ください。
-
sidekiq_role(
gitlab-ce
/gitlab-ee
)Sidekiq サービスでサーバを設定します。
デフォルトでは、他のサービスは有効にしません。
スパムチェックのロール
GitLab 14.9で導入されました。
SpamcheckロールはSpamcheckサービスの設定や構成に使用します。詳しくはSpamcheckのドキュメントをご覧ください。
-
spamcheck_role(
gitlab-ee
)spamcheck および spam-classifier サービスをサーバに設定します。
デフォルトでは、他のサービスは有効にしません。