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 サービスをサーバに設定します。 デフォルトでは、他のサービスは有効にしません。 
