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 サービスをサーバに設定します。

    デフォルトでは、他のサービスは有効にしません。