外部PostgreSQLサービスを使用したGitLabの設定
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
GitLabをクラウドプロバイダーでホストしている場合、オプションでPostgreSQLのマネージドサービスを使用できます。たとえば、AWSでは、PostgreSQLを実行するマネージドAmazon Relational Database Service(RDS)が提供されています。
または、Linuxパッケージとは別に、PostgreSQLのインスタンスまたはクラスターを自分で管理することもできます。
クラウドマネージドサービスを使用するか、独自のPostgreSQLインスタンスを提供する場合は、データベース要件ドキュメントに従ってPostgreSQLを設定してください。
GitLab Railsデータベース
外部PostgreSQLサーバーをセットアップした後:
データベースサーバーにログインします。
任意のパスワードを持つ
gitlabユーザーをセットアップし、gitlabhq_productionデータベースを作成して、ユーザーにデータベースのオーナーにしてください。この設定例は、セルフコンパイルインストールドキュメントに記載されています。クラウドマネージドサービスを使用している場合は、
gitlabユーザーに追加のロールを付与する必要がある場合があります:- Amazon RDSには、
rds_superuserロールが必要です。 - Azure Database for PostgreSQLには、
azure_pg_adminロールが必要です。Azure Database for PostgreSQL - Flexible Serverでは、拡張機能をインストールする前に、許可リストに登録する必要があります。 - Google Cloud SQLには、
cloudsqlsuperuserロールが必要です。
これは、インストールおよびアップグレード中の拡張機能のインストール用です。別の方法として、拡張機能が手動でインストールされていることを確認し、今後のGitLabアップグレードで発生する可能性のある問題について読んでください。
- Amazon RDSには、
外部PostgreSQLサービスの適切な接続の詳細を使用して、GitLabアプリケーションサーバーを
/etc/gitlab/gitlab.rbファイルで構成します:# Disable the bundled Omnibus provided PostgreSQL postgresql['enable'] = false # PostgreSQL connection details gitlab_rails['db_adapter'] = 'postgresql' gitlab_rails['db_encoding'] = 'unicode' gitlab_rails['db_host'] = '10.1.0.5' # IP/hostname of database server gitlab_rails['db_port'] = 5432 gitlab_rails['db_password'] = 'DB password'GitLabマルチノード設定の詳細については、参照アーキテクチャを参照してください。
変更を有効にするには、GitLabを再設定してください:
sudo gitlab-ctl reconfigureTCPポートを有効にするには、PostgreSQLを再起動します:
sudo gitlab-ctl restart
コンテナレジストリのメタデータデータベース
コンテナレジストリメタデータデータベースを使用する予定がある場合は、レジストリデータベースとユーザーも作成する必要があります。
外部PostgreSQLサーバーをセットアップした後:
データベースサーバーにログインします。
次のSQLコマンドを使用して、ユーザーとデータベースを作成します:
-- Create the registry user CREATE USER registry WITH PASSWORD '<your_registry_password>'; -- Create the registry database CREATE DATABASE registry OWNER registry;クラウドマネージドサービスの場合は、必要に応じて追加のロールを付与します:
GRANT rds_superuser TO registry;GRANT azure_pg_admin TO registry;GRANT cloudsqlsuperuser TO registry;コンテナレジストリメタデータデータベースを有効にして使用を開始できるようになりました。
トラブルシューティング
SSL SYSCALL error: EOF detectedエラーを解決する
外部PostgreSQLインスタンスを使用すると、次のようなエラーが表示されることがあります:
pg_dump: error: Error message from server: SSL SYSCALL error: EOF detectedこのエラーを解決するには、PostgreSQLの最小要件を満たしていることを確認してください。RDSインスタンスをサポート対象のバージョンにアップグレードすると、このエラーなしにバックアップを実行できるようになります。詳細については、issue 64763を参照してください。