Vauréal, le 30 juin 2025

Le moteur de base de données relationnelle PostgreSQL s’impose de plus en plus comme un incontournable dans le monde de l’open-source. En revanche, son déploiement et sa gestion de manière manuelle peuvent s’avérer compliqués quand notre parc d’instances PostgreSQL commence à s’accroître. Nous allons donc voir dans une série d’articles dédiés, comment faciliter les tâches de déploiement et de gestion de notre moteur favori.

Pourquoi industrialiser PostgreSQL ?

Gérer un parc d’instances PostgreSQL hétérogènes complique fortement les opérations de maintenance, surtout lorsque des divergences existent d’une instance à l’autre : emplacements des fichiers de traces, chemins des répertoires de données ou des paramètres de configuration différents.

De plus, des déploiements manuels risquent d’engendrer des erreurs humaines, des oublis si des procédures claires et testées ne sont pas en place.

En automatisant ces tâches, il est alors possible de standardiser les bonnes pratiques pour nos instances comme :

  • des répertoires et une configuration configuration identiques;
  • la mise en place d’une sauvegarde physique;
  • le déploiement d’une solution de supervision;
  • la mise en place d’une réplication et d’un système de failover.

Le but étant donc de faciliter et accélérer le déploiement de nos instances dans un état “production-ready” de manière homogène. De ce fait, les maintenances seront plus simples pour une équipe de DBA.

L’industrialisation de PostgreSQL

L’automatisation du déploiement et de la configuration de nos instances peut être réalisée à l’aide d’outils comme Ansible ou Terraform afin de standardiser ces tâches. Couplés à Ansible Automation Platform ou encore à une chaîne CI/CD, les déploiements pourront être facilités et exécutés par des équipes différentes selon un contexte : dans un environnement de développement par des développeurs, dans un environnement de production par une équipe de DBA par exemple.

Dans le cas de l’utilisation d’Ansible, la conception de rôles Ansible dédiés à l’installation de PostgreSQL et de ses outils satellites (pgBackRest, patroni, PoWA) permettront de simplifier l’écriture et la maintenance des playbooks.

Dalibo met à disposition un ensemble de collections dans Ansible Galaxy pour faciliter ces déploiements :

  • Collection Essential : Regroupe les rôles nécessaires à l’installation de PostgreSQL, des outils de sauvegardes, des outils de supervision ainsi que d’autres éléments cruciaux pour la gestion d’une instance.
  • Collection Advanced : Regroupe les rôles pour une utilisation avancée de PostgreSQL comme le déploiement de patroni pour la haute-disponibilité, des outils d’analyse d’utilisation et de performance d’une instance.
  • Collection Extras : Regroupe des rôles de déploiement d’outils annexes pouvant être utiles pour l’exploitation des instances PostgreSQL (configuration de rsyslog, logrotate, création de compte système, mise en place d’une IP virtuelle etc.)

Concernant l’exploitation et le déploiement des instances, l’outil pglift permet de faciliter ces actions à l’aide d’une interface en ligne de commandes ainsi qu’une collection de modules Ansible disponible également dans Ansible Galaxy : Collection pglift.

Développé en python au sein de Dalibo, pglift permet de déployer des instances PostgreSQL de manière homogène avec des modèles de configuration pour PostgreSQL. De plus, cet outil déploie et configure tous les éléments nécessaires à une instance (sauvegarde, supervision …) afin, qu’en une commande, l’instance soit démarrée et prête dans un environment de production.

En plus du déploiement et de la maintenance de d’une instance, pglift permet également d’effectuer des tâches liées aux rôles ou aux bases de données (création, modifications suppression).

Pour conclure

L’industrialisation de PostgreSQL doit être considérée lorsque le parc d’instance s’agrandit et qu’il devient un composant critique au sein de notre SI. Automatiser les déploiements permet non seulement de fiabiliser les différentes tâches mais également de moderniser les pratiques notamment avec une approche infrastructure-as-code (IaC) à l’aide d’outils comme Ansible et Terraform. Ces outils permettront alors un déploiement reproductible et évolutif.

Ce premier article pose les bases du sujet de l’industrialisation. Une série d’articles paraîtra prochainement sur notre blog afin d’approfondir chaque aspect de l’industrialisation de PostgreSQL.


DALIBO

DALIBO est le spécialiste français de PostgreSQL®. Nous proposons du support, de la formation et du conseil depuis 2005.