doc-locale/fr-fr/administration/postgresql/external.md
{{< details >}}
{{< /details >}}
Si vous hébergez GitLab chez un fournisseur cloud, vous pouvez éventuellement utiliser un service géré pour PostgreSQL. Par exemple, AWS propose un service de base de données relationnelle géré (RDS) qui exécute PostgreSQL.
Vous pouvez également choisir de gérer votre propre instance ou cluster PostgreSQL séparément du package Linux.
Si vous utilisez un service géré dans le cloud ou fournissez votre propre instance PostgreSQL, configurez PostgreSQL conformément au document sur les exigences de la base de données.
Après avoir configuré le serveur PostgreSQL externe :
Connectez-vous à votre serveur de base de données.
Configurez un utilisateur gitlab avec le mot de passe de votre choix, créez la base de données gitlabhq_production et faites de cet utilisateur le propriétaire de la base de données. Vous trouverez un exemple de cette configuration dans la documentation d'installation à partir des sources.
Si vous utilisez un service géré dans le cloud, vous devrez peut-être accorder des rôles supplémentaires à votre utilisateur gitlab :
rds_superuser.azure_pg_admin. Azure Database for PostgreSQL - Flexible Server requiert l'autorisation des extensions avant leur installation.cloudsqlsuperuser.Ceci est nécessaire pour l'installation des extensions lors de l'installation et des mises à niveau. Vous pouvez également installer manuellement les extensions requises.
Configurez les serveurs d'applications GitLab avec les informations de connexion appropriées pour votre service PostgreSQL externe dans votre fichier /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'
Pour plus d'informations sur les configurations multi-nœuds de GitLab, consultez les architectures de référence.
Reconfigurer pour que les modifications prennent effet :
sudo gitlab-ctl reconfigure
Redémarrez PostgreSQL pour activer le port TCP :
sudo gitlab-ctl restart
Si vous prévoyez d'utiliser la base de données de métadonnées du registre de conteneurs, vous devez également créer la base de données et l'utilisateur du registre.
Après avoir configuré le serveur PostgreSQL externe :
Connectez-vous à votre serveur de base de données.
Utilisez les commandes SQL suivantes pour créer l'utilisateur et la base de données :
-- Create the registry user
CREATE USER registry WITH PASSWORD '<your_registry_password>';
-- Create the registry database
CREATE DATABASE registry OWNER registry;
Pour les services gérés dans le cloud, accordez les rôles supplémentaires nécessaires :
{{< tabs >}}
{{< tab title="Amazon RDS" >}}
GRANT rds_superuser TO registry;
{{< /tab >}}
{{< tab title="Azure database" >}}
GRANT azure_pg_admin TO registry;
{{< /tab >}}
{{< tab title="Google Cloud SQL" >}}
GRANT cloudsqlsuperuser TO registry;
{{< /tab >}}
{{< /tabs >}}
Vous pouvez maintenant activer et commencer à utiliser la base de données de métadonnées du registre de conteneurs.
SSL SYSCALL error: EOF detected {#resolve-ssl-syscall-error-eof-detected-error}Lors de l'utilisation d'une instance PostgreSQL externe, vous pouvez rencontrer une erreur comme :
pg_dump: error: Error message from server: SSL SYSCALL error: EOF detected
Pour résoudre cette erreur, assurez-vous de respecter les exigences minimales de PostgreSQL. Après avoir mis à niveau votre instance RDS vers une version prise en charge, vous devriez pouvoir effectuer une sauvegarde sans cette erreur. Consultez le ticket 64763 pour plus d'informations.