Comment installer PostgreSQL 14 sur Fedora 40 ou 39 Linux

PostgreSQL 14 est un système de gestion de bases de données relationnelles open source réputé pour sa robustesse, son évolutivité et son vaste ensemble de fonctionnalités. L'une des fonctionnalités clés introduites dans PostgreSQL 14 était la possibilité de gérer le tri incrémentiel, ce qui a considérablement amélioré les performances des requêtes pour des charges de travail spécifiques. Cette version a également amélioré le traitement parallèle, le vide et le traitement JSON, ce qui en fait un choix judicieux pour les environnements d'entreprise et de développement. Bien qu'il y ait quelques versions en retard sur la dernière version, PostgreSQL 14 reste une option fiable et largement prise en charge.

Pour installer PostgreSQL 14 sur Fedora 40 ou 39 à l'aide du terminal de ligne de commande, vous pouvez importer et installer directement à partir des versions PostgreSQL RPM. Cette méthode garantit que vous disposez de la dernière version et facilite les futures mises à niveau.

Mettre à jour Fedora avant l'installation de PostgreSQL 14

Pour commencer, mettez à jour votre système Fedora pour vous assurer que tous les packages sont à jour. Cette étape permet d'éviter les conflits potentiels lors de l'installation de PostgreSQL. Exécutez la commande ci-dessous :

sudo dnf update --refresh

Importer le référentiel de clés GPG RPM PostgreSQL

Commencez par importer le référentiel PostgreSQL. Cette action garantit l'accès aux versions les plus récentes de PostgreSQL. Sélectionnez et importez le référentiel correspondant à votre version de Fedora Linux.

Importer PostgreSQL 14

Remarque : N'oubliez pas d'importer la version correcte pour votre version de distribution Fedora :

Pour Fedora 40, utilisez cette commande :

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-40-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Pour Fedora 39, la commande est légèrement différente :

sudo dnf install http://apt.postgresql.org/pub/repos/yum/reporpms/F-39-x86_64/pgdg-fedora-repo-latest.noarch.rpm

Désactiver le module PostgreSQL par défaut (le cas échéant)

Les référentiels par défaut de Fedora incluent souvent PostgreSQL comme module. Pour prioriser l'installation depuis le dépôt PostgreSQL, il est conseillé de désactiver ce module par défaut. Utilisez la commande suivante pour ce faire :

sudo dnf -qy module disable postgresql

Finaliser l'installation de PostgreSQL 14

Procéder à l'installation de PostgreSQL 14

.Utilisez cette commande pour installer le serveur PostgreSQL 14 et sa documentation :

sudo dnf install postgresql14-server postgresql14-docs -y

De plus, vous pouvez installer le package de développement comme suit.

sudo dnf install postgresql14-devel

Enfin, vous pouvez installer des modules, binaires et bibliothèques supplémentaires d’usage courant.

sudo dnf install postgresql14-libs postgresql14-odbc postgresql14-plperl postgresql14-plpython3 postgresql14-pltcl postgresql14-tcl postgresql14-contrib postgresql14-llvmjit

Initialiser la base de données PostgreSQL 14

Une fois installé, vous devez exécuter la commande suivante pour initialiser la base de données ; ne pas le faire empêchera PostgreSQL de fonctionner.

sudo /usr/pgsql-14/bin/postgresql-14-setup initdb

Activer le service Systemd PostgreSQL 14

Par défaut, PostgreSQL n'est pas activé. Utilisez la commande suivante pour démarrer le service immédiatement et au démarrage du système.

sudo systemctl enable postgresql-14 --now

Vérifier l'installation de PostgreSQL 14

Ensuite, vérifiez l'état pour vous assurer que le logiciel est installé et activé sans erreur à l'aide de la commande suivante.

systemctl status postgresql-14

Commandes de service Systemd pour PostgreSQL 14

Gestion du service PostgreSQL 14

Le serveur de base de données PostgreSQL fonctionne comme un service systemd nommé « postgresql-14 » sur Fedora. Les administrateurs système peuvent gérer ce service à l'aide d'un ensemble de commandes systemd vitales pour la maintenance et le dépannage de routine.

Arrêt du serveur PostgreSQL 14

Pour arrêter le service PostgreSQL, peut-être pour des modifications de maintenance ou de configuration, utilisez cette commande :

sudo systemctl stop postgresql-14

Démarrage du serveur PostgreSQL 14

Pour démarrer le service PostgreSQL, notamment après un arrêt ou une première installation, utilisez la commande suivante :

sudo systemctl start postgresql-14

Redémarrage du serveur PostgreSQL 14

La commande restart est utile si vous devez appliquer de nouvelles configurations ou réinitialiser le service PostgreSQL. Il arrête puis démarre le service en une seule action :

sudo systemctl restart postgresql-14

Rechargement du serveur PostgreSQL 14

La commande reload est idéale pour appliquer des modifications de configuration sans arrêter la base de données. Il actualise le service sans interrompre le fonctionnement de la base de données :

sudo systemctl reload postgresql-14

Vérification de l'état du service PostgreSQL 14

Pour vérifier l'état opérationnel du service PostgreSQL, utilisez cette commande. Il fournit des informations sur l'état du service, notamment s'il est actif, inactif ou s'il rencontre des problèmes :

systemctl status postgresql-14

Configurer PostgreSQL 14

Passer au compte Postgres 14

Accéder au compte Postgres 14

Lors de l'installation de PostgreSQL, un compte utilisateur nommé « postgres » est automatiquement créé. Ce compte est associé au rôle Postgres par défaut, qui possède les privilèges de superutilisateur. Pour accéder à la base de données PostgreSQL, passez au compte 'postgres' à l'aide de la commande :

sudo -i -u postgres

Entrée de l'invite PostgreSQL 14

Une fois passé à l'utilisateur 'postgres', accédez directement à l'invite PostgreSQL en tapant psql. Une fois la connexion réussie, l'invite du terminal devient postgres=#, indiquant une connexion active à la base de données.

Pour quitter la base de données PostgreSQL, tapez simplement :

psql

Méthode alternative pour accéder à PostgreSQL 14

Utiliser Sudo pour un accès direct

Vous pouvez également interagir avec la base de données PostgreSQL sans changer de compte en utilisant :

exit

Alternative au changement de compte Postgres

Une autre façon d'interagir avec la base de données Postgres sans changer de compte d'utilisateur consiste à utiliser une commande sudo pour se connecter directement. Vous pouvez le faire en tapant :

sudo -u postgres psql

Cette commande est efficace pour des interactions rapides avec la base de données car elle contourne les commandes de terminal supplémentaires.

Pour quitter, comme pour la première méthode, tapez exit.

exit

Créer un utilisateur et une base de données avec PostgreSQL 14

Création d'un nouveau rôle d'utilisateur

Seuls les superutilisateurs et les rôles disposant du privilège createrole peuvent créer de nouveaux rôles. Pour créer un utilisateur, utilisez la commande :

sudo su - postgres -c "createuser <name>"

Remplacer avec le nom d'utilisateur souhaité.

Création d'une nouvelle base de données

Ensuite, créez une base de données PostgreSQL pour l'utilisateur nouvellement créé :

sudo su - postgres -c "createdb <namedb>"

Remplacer avec le nom de la base de données souhaitée.

Accorder des autorisations

Pour accorder des autorisations au nouvel utilisateur sur la nouvelle base de données, connectez-vous d'abord à la base de données PostgreSQL en tant que superutilisateur :

sudo -u postgres psql

Ensuite, accordez tous les privilèges au nouvel utilisateur :

GRANT ALL PRIVILEGES ON DATABASE <usernamedb> TO <name>;

Remplacer avec le nom de la base de données et avec le nom d'utilisateur. Pour quitter, tapez exit.

exit

Configurer Firewalld pour PostgreSQL 14

Établir des règles de pare-feu pour PostgreSQL 14

Sécuriser PostgreSQL implique bien plus que simplement installer et exécuter le service ; il est crucial de configurer efficacement les contrôles d'accès au réseau. Cela sécurise la base de données et garantit que seul le trafic légitime y parvient. Nous passerons par la configuration de firewalld, un gestionnaire de pare-feu dynamique dans Fedora, pour protéger PostgreSQL.

Création d'une zone de pare-feu pour PostgreSQL

Tout d'abord, créez une zone dédiée dans firewalld pour PostgreSQL. Cette approche permet un contrôle plus granulaire et une plus grande clarté dans la gestion des règles spécifiques à PostgreSQL :

sudo firewall-cmd --permanent --new-zone=postgres

Cette commande établit une zone « postgres », isolant les règles de pare-feu liées à PostgreSQL pour une gestion plus facile.

Restreindre l'accès aux adresses IP connues

Autoriser l'accès à partir d'une seule adresse IP

Pour les scénarios dans lesquels un seul client ou serveur doit accéder à PostgreSQL :

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4

Remplacez 1.2.3.4 par l'adresse IP spécifique nécessitant l'accès à la base de données.

Autoriser un sous-réseau

Dans des environnements tels que les réseaux d'entreprise, il peut être nécessaire d'autoriser un sous-réseau entier :

sudo firewall-cmd --permanent --zone=postgres --add-source=192.168.1.0/24

Ici, 192.168.1.0/24 représente le sous-réseau. Ajustez cette valeur pour qu'elle corresponde à la plage réseau souhaitée.

Accorder l'accès à plusieurs adresses IP spécifiques

Pour les scénarios avec plusieurs adresses IP connues nécessitant un accès :

sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.4
sudo firewall-cmd --permanent --zone=postgres --add-source=1.2.3.5

Répétez cette commande pour chaque adresse IP.

Gestion de l'accès aux ports pour PostgreSQL 14

Configuration du port PostgreSQL par défaut

Pour les installations standard utilisant le port par défaut :

sudo firewall-cmd --permanent --zone=postgres --add-port=5432/tcp
Personnalisation de la configuration du port

Si PostgreSQL fonctionne sur un port non standard (par exemple, 5433) :

sudo firewall-cmd --permanent --zone=postgres --add-port=5433/tcp

Modifiez le numéro de port en fonction de votre configuration PostgreSQL spécifique.

Implémentation et vérification des nouvelles règles de pare-feu

Application des modifications

Pour activer les nouvelles règles, rechargez firewalld :

sudo firewall-cmd --reload

Cette étape garantit que les nouvelles configurations prennent effet immédiatement.

Vérification des configurations

Après la configuration, il est prudent de revoir les règles définies pour la zone 'postgres' :

sudo firewall-cmd --list-all --zone=postgres

Cette commande affiche toutes les règles actives dans la zone 'postgres', permettant de vérifier le setup.exp

Configuration de l'accès à distance pour PostgreSQL 14

Configuration des interfaces d'écoute pour l'accès à distance

Modification de la configuration de PostgreSQL

Pour activer l'accès à distance à PostgreSQL, il est nécessaire d'ajuster les paramètres de l'interface dans le fichier postgresql.conf. Ce processus permet à PostgreSQL d'accepter des connexions provenant de diverses sources.

Assurez-vous que les paramètres FirewallD sont en place pour permettre l'accès à distance, comme indiqué dans les sections précédentes.

Accéder au fichier de configuration

Pour modifier la configuration de PostgreSQL 14, utilisez l'éditeur de texte nano :

sudo nano /var/lib/pgsql/14/data/postgresql.conf
Modification de l'adresse d'écoute

Dans la section « Paramètres de connexion », remplacez Listen_addresses de « localhost » par vos besoins :

  • Écouter sur toutes les interfaces : pour accepter les connexions de n'importe quelle source, définissez listening_addresses sur « * ».
listen_addresses = '*'
  • Écouter sur une interface spécifique : spécifiez une adresse IP pour restreindre les connexions à une interface particulière.
listen_addresses = '192.168.1.100'

Après l'édition, enregistrez le fichier (Ctrl + O, puis Entrée) et quittez (Ctrl + X).

Redémarrage du service PostgreSQL 14

Appliquez les modifications en redémarrant le service PostgreSQL :

sudo systemctl restart postgresql-14

Confirmation des ports d'écoute

Utilisez l'utilitaire ss pour vérifier que PostgreSQL écoute sur les ports spécifiés :

ss -nlt | grep 5432

En cas de succès, vous devriez voir les ports dans le port de votre terminal.

Paramètres avancés de connexion à distance dans pg_hba.conf

Personnalisation de l'accès dans le fichier pg_hba.conf

Pour un contrôle précis des connexions distantes, le fichier pg_hba.conf propose diverses options de personnalisation.

Modification de pg_hba.conf

Ouvrez le fichier pg_hba.conf :

sudo nano /var/lib/pgsql/14/data/pg_hba.conf
fichier de configuration pg_hba pour PostgreSQL 14 sur Fedora Linux
Exemple de capture d'écran du fichier de configuration pg_hba pour PostgreSQL 14 sur Fedora Linux
Configuration des règles d'accès à distance
Autoriser des utilisateurs et des bases de données spécifiques

Pour limiter l'accès à un utilisateur et à une base de données spécifiques à partir d'une adresse IP particulière :

héberger ma base de données monutilisateur 192.168.1.100/32 md5
Autoriser un sous-réseau

Pour un accès plus large, comme un sous-réseau entier :

héberger tous les 192.168.1.0/24 md5
Utiliser différentes méthodes d'authentification

Choisissez une méthode d'authentification adaptée à votre environnement. Pour l'authentification par mot de passe :

héberger tout 0.0.0.0/0 md5

Pour l'authentification de confiance (notez les risques de sécurité) :

héberger tous tous 0.0.0.0/0 confiance

Après avoir configuré les règles souhaitées, enregistrez et quittez l'éditeur.

Application et vérification des modifications

Redémarrez PostgreSQL pour implémenter les nouvelles configurations :

sudo systemctl restart postgresql-14

Vérifiez les paramètres effectifs dans pg_hba.conf en utilisant :

cat /var/lib/pgsql/14/data/pg_hba.conf

Configurer SELinux pour PostgreSQL 14

Lors de la configuration de PostgreSQL 14 sur Fedora, il est essentiel de configurer correctement SELinux (Security-Enhanced Linux). SELinux ajoute une couche de sécurité en appliquant des politiques de contrôle d'accès. Une mauvaise configuration peut entraîner des problèmes courants tels que des refus d’accès ou des interruptions de service.

Définition de SELinux en mode permissif pour le dépannage

Ajustement temporaire du mode SELinux

Si vous rencontrez des problèmes de démarrage ou de fonctionnement correct de PostgreSQL, envisagez de définir temporairement SELinux en mode « Permissif ». Ce mode autorise les opérations qui seraient bloquées en mode « Application » mais les enregistre pour examen :

sudo setenforce 0

Journaux de surveillance pour les refus AVC

Vérifiez les journaux SELinux pour les refus AVC (Access Vector Cache) :

sudo restorecon -Rv /var/lib/pgsql/14/data/

Cette commande permet d'identifier les politiques SELinux empêchant PostgreSQL de fonctionner correctement.

Configuration des politiques SELinux pour PostgreSQL 14

Restauration du contexte SELinux par défaut

Pour vous assurer que les fichiers ont le contexte SELinux correct, utilisez la commande restaurercon. Des contextes incorrects sur les répertoires ou fichiers PostgreSQL peuvent entraîner des problèmes d'accès :

sudo setsebool -P postgresql_can_rnetwork 1

Cette commande active le booléen postgresql_can_rnetwork, autorisant les connexions réseau.

Configuration avancée de SELinux

Personnalisation des politiques SELinux

Dans des configurations plus complexes, par exemple lorsque PostgreSQL interagit avec d'autres services ou ports personnalisés, la création de politiques SELinux personnalisées peut être nécessaire. Utilisez l'outil audit2allow pour générer des modules de politique personnalisés en fonction de besoins spécifiques.

Application de stratégies personnalisées

Après avoir créé des stratégies personnalisées, appliquez-les en utilisant :

sudo semodule -i my_postgresql.pp

Remplacez my_postgresql.pp par le nom de votre fichier de stratégie.

Vérification des paramètres SELinux

Vérification de l'état de SELinux

Confirmez l'état de SELinux pour vous assurer qu'il est correctement défini pour votre installation PostgreSQL :

sestatus

Validation des contextes de fichiers

Vérifiez que les fichiers et répertoires liés à PostgreSQL ont les contextes SELinux appropriés :

ls -Z /var/lib/pgsql/14/data/

Conclusion

Avec PostgreSQL 14 installé avec succès sur votre système Fedora, vous pouvez tirer parti de ses fonctionnalités avancées et de ses performances robustes pour répondre aux besoins de votre base de données. Vérifiez régulièrement les mises à jour et les futures mises à niveau des versions PostgreSQL RPM pour maintenir votre système à jour.

Pour plus d'informations sur l'utilisation de PostgreSQL, visitez le site officiel Documentation.

Joshua James
Suis-moi
Les derniers articles par Joshua James (tout voir)

Laissez un commentaire