14.06.2023

Comment installer et configurer pgAdmin 4 en mode serveur sur Ubuntu 22.04

Introduction

pgAdmin est un projet open source conçu pour gérer PostgreSQL bases de données. PostgreSQL est l'un des systèmes de gestion de base de données les plus populaires au monde.

L'outil est facile à utiliser pour les débutants et les professionnels travaillant avec PostgreSQL. Il utilise une base de données relationnelle objet et fournit une interface Web et une version de bureau pour une interaction facile avec les objets de la base de données.

Préparation à l'installation

Pour un bon fonctionnement entre pgAdmin 4 et PostgreSQL, il faut préparer à l'avance :

Étape 1 – Déploiement de pgAdmin et téléchargement des dépendances

En mettant d'abord à jour les index des packages, utilisons l'utilitaire apt intégré.

mise à jour de sudo apt

Téléchargez les dépendances de libgmp3-dev, une bibliothèque arithmétique de haute précision ; libpq-dev, une bibliothèque qui vous permet de travailler avec PostgreSQL arrière-plan.

sudo apt installer libgmp3-dev libpq-dev

Créez plusieurs répertoires dans le but de stocker des informations sur les sessions connectées, le stockage et les fichiers journaux :

sudo mkdir -p /var/lib/pgadmin4/sessions
sudo mkdir /var/lib/pgadmin4/storage
sudo mkdir /var/log/pgadmin4

Créer un utilisateur serverspace:

ajout d'utilisateur -m serverspace

Puis une nouvelle phrase de passe pour l'utilisateur serverspace Doit être réglé:

passwd serverspace

Ajoutez-le au sudo groupe:

mod utilisateur -aG sudo serverspace

Ensuite, changez les propriétaires du répertoire de root à serverspace, certains utilitaires n'autorisent pas l'accès pour exécuter des services en tant que root :

sudo chown -R serverspace:serverspace /var/lib/pgadmin4
sudo chown -R serverspace:serverspace /var/log/pgadmin4

Allez ensuite dans le dossier créé sous le nom "test". Dans ces instructions, les noms des répertoires sont donnés de la même manière que dans les instructions. Accédez au répertoire de test créé précédemment et exécutez l'environnement test_env :

test cd/
source test_env/bin/activate

En exécutant l'environnement virtuel test_env, mettez à jour le package pip pour installer la bibliothèque requise. Dans le cas d'un pip non mis à jour, nous pouvons rencontrer quelques difficultés lors de l'installation de pgAdmin.

Pour mettre à jour le pip, procédez comme suit :

python3 -m pip installer -U pip

Utilisez un navigateur Web pour télécharger la dernière version d'un fichier avec une extension .whl. Quelle est l'extension de package standard pour le Python distribution. Copiez le lien de l'utilitaire et saisissez dans la ligne de commande :

wget https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v6.10/pip/pgadmin4-6.10-py3-none-any.whl

À l'aide de pip, configurez le package téléchargé :

python -m pip installer la roue

Mettre en place:

python -m pip install pgadmin4-6.10-py3-none-any.whl

Télécharger Gunicorn en Python WSGI, qui communiquera avec Nginx:

python -m pip installer gunicorn

La première étape a été franchie avec succès. Modifiez le fichier de configuration, puis vous pourrez vous connecter à la base de données.

Étape 2 – Configuration de pgAdmin 4

Vous devez sauvegarder le fichier config.py, qui se trouve dans le dossier du package pgAdmin installé. Dans cet exemple, le chemin d'accès au fichier :
/test/test_env/lib/python3.10/site-packages/pgadmin4/

cd /test/test_env/lib/python3.10/site-packages/pgadmin4/

Modification du fichier maître - peut entraîner une perte de données :

cp config.py config.py.orig

Le fichier config.py ne doit être modifié que si nécessaire pour éviter d'endommager les données et les performances de pgAdmin 4.

Apportez des modifications au fichier config_local.py.

Important! Le dossier doit se trouver à l'adresse : /site-packages/pgadmin4/

Vous pouvez utiliser l'utilitaire touch pour créer un fichier, ou vous pouvez créer et ouvrir un fichier avec vim ou nano. Nous utiliserons nano :

nano /test_env/lib/python3.10/site-packages/pgadmin4/config_local.py

Après ouverture, nous ferons les modifications :

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
STORAGE_DIR = '/var/lib/pgadmin4/stockage'
AZURE_CREDENTIAL_CACHE_DIR = '/var/lib/pgadmin4/azurecredentialcache'
SERVER_MODE = Vrai

Ce bout de code fait :
LOG_FILE : chemin d'accès au fichier journal
SQLITE_PATH : chemin vers les données utilisateur dans la base de données SQLite. Le fichier est stocké dans le répertoire /var/lib/pgadmin4/, nos données utilisateur ne seront pas perdues après la mise à niveau.
SESSION_DB_PATH : chemin vers un répertoire contenant des informations sur les sessions connectées.
STORAGE_DIR : chemin d'accès à un répertoire contenant les informations de stockage et de certificat.
SERVER_MODE : le mode de serveur sélectionné est True.

Pour quitter et enregistrer, appuyez sur ESC, tapez :wq! et appuyez sur ENTREE.

Pour démarrer les configurations à partir de cet emplacement, démarrez pgAdmin avec un certain nombre de commandes.

Configurez une clé publique :

boucle -fsS https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo gpg --dearmou -o /usr/share/keyrings/packages-pgadmin-org.gpg

Pour continuer, ajoutez un fichier de configuration. Envoyez la commande suivante au terminal :

sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/packages-pgadmin-org.gpg] https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list && apt update'

Installez pgadmin4 :

sudo apt installer pgadmin4

Exécutons la configuration :

sudo /usr/pgadmin4/bin/setup-web.sh

Ensuite, nous écrirons nos coordonnées (e-mail, mot de passe) pour la future connexion à l'interface Web pgAdmin :

pgAdmin est maintenant disponible sur notre réseau.

Étape 3 – Déployer Gunicorn et Nginx

Gunicorn est responsable de l'exécution de pgAdmin en tant qu'application Web. Il est actuellement possible de se connecter à pgAdmin à partir d'ordinateurs locaux. UN Nginx le serveur Web est configuré pour un accès en dehors de notre réseau.

Allez dans le répertoire racine, puis allez à l'adresse :

cd / etc /nginx/sites-disponibles/

Apportez des modifications au fichier /test_domain.ru :

serveur {
écouter 80 ; #Écoute sur le port 80 IPv4
écouter [::]:80 ; #Dans la plupart des cas, au démarrage nginx -t donne une erreur, est envoyé à cette ligne, lorsque vous obtenez une erreur, commentez la ligne
nom_serveur test_domain.ru www.test_domain.ru ; #Nom du serveur
emplacement / { #Chemin
proxy_pass http://unix:/tmp/pgadmin4.sock ; #proxy inverse
inclure proxy_params;
}
}

Lançons le Python environnement virtuel. Connectez le proxy inverse à l'aide de quelques commandes :

source /test/test_env/bin/activer
gunicorn --bind unix:/tmp/pgadmin4.sock --workers=1 --threads=25 --chdir /root/test/test_env/lib/python3.10/site-packages/pgadmin4 pgAdmin4:app
#Sortir
[2022-11-04 21:55:37 +0000] [6338] [INFO] Démarrage de gunicorn 20.1.0
[2022-11-04 21:55:37 +0000] [6338] [INFO] Écoute sur : unix:/tmp/pgadmin4.sock (6338)
[2022-11-04 21:55:37 +0000] [6338] [INFO] Utilisation de worker : gthread
[2022-11-04 21:55:37 +0000] [6339] [INFO] Booter worker avec pid : 6339

La commande doit être exécutée depuis le virtuel test_env space et il ne doit y avoir aucune erreur liée à la bibliothèque dans la sortie.

Étape 4 - Accès à pgAdmin 4

Sur la machine de notre réseau, lancez un navigateur web et dans la barre d'adresse indiquez l'adresse de l'hôte sur lequel pgAdmin est déployé http://ip_serveur/pgadmin4.

L'exemple actuel utilise l'adresse http://10.0.0.1/pgadmin4

Lors de la connexion, indiquez l'email et le mot de passe utilisés pour créer la configuration (Fin "Etape 2 - Configuration de pgAdmin 4").

Connectez-vous par cliappuyant sur le bouton Login (voir écran 1)

Écran 1 - Accès à pgAdmin

Si l'autorisation a réussi, vous verrez la page d'accueil de l'interface Web de pgAdmin (voir écran 2).

Écran 2 - panneau de contrôle pgAdmin

Modifiez maintenant le fichier de configuration utilisé pour vous connecter au PostgreSQL base de données.

Stage 5 - PostgreSQL paramétrage utilisateur

Nettoyage à sec CTRL + C arrêtera le processus, retournant ainsi à la console.

En suivant l'élément Processus de configuration du Des instructions. Passons à la configuration.

Connectez-vous au compte administrateur "intégré":

sur postgres
PostgreSQL psql

Créez un utilisateur et la base de données elle-même à l'aide des commandes :

CRÉER UN RÔLE MOT DE PASSE ' ';
CRÉER UNE BASE DE DONNÉES AVEC PROPRIÉTAIRE = ;

Par exemple :

CRÉER UN RÔLE serverspace MOT DE PASSE DE CONNEXION 'ububntu' ;
CRÉER UNE BASE DE DONNÉES serverspacedb AVEC PROPRIETAIRE = serverspace;

Dans le terminal de la base de données, ajoutez un mot de passe pour l'utilisateur serverpace. Lors du déploiement du SGBD, chaque utilisateur doit créer des mots de passe complexes et spécifier des privilèges utilisateur :

MODIFIER L'UTILISATEUR serverspace MOT DE PASSE 'p@55w0rd' ;

Quittez en appuyant sur \q.

Utilisez le navigateur pour accéder à la console pgAdmin 4. Ajoutez un nouveau serveur à l'aide de l'outil Ajouter un nouveau serveur (voir Écran 3).

Écran 3 - Ajout d'un nouveau serveur

Entrons le nom (voir Écran 4).

Écran 4 - Nom du serveur

Allons dans l'onglet Connexion, renseignez les champs Nom d'hôte/adresse (Host name/address) - localhost, Maintenance database (Serving database) - serverspacedb, Nom d'utilisateur (Nom d'utilisateur) - serverspace, Mot de passe (Mot de passe) - spécifié précédemment sur la ligne de commande. Après avoir rempli les champs, cliCliquez sur le bouton Enregistrer (voir écran 5).

Envisager! Les illustrations montrent le nom de la base de données : serverspace.

Ecran 5 - Renseigner les champs de connexion à la base de données

L'exactitude de la connexion est vérifiée dans l'onglet Navigateur. Des symboles (1) apparaîtront dans l'onglet Serveurs, indiquant qu'un nouveau serveur a été connecté. Sous forme développée, nous obtenons des informations sur la base de données (bases de données), les rôles de connexion / groupe (rôles / groupe de connexion), la tablespace (tableauspaces). La section Databases stocke deux bases de données postgres (la base de données standard installée par défaut dans PostgreSQL) et serverspacedb précédemment créée. (Voir Écran 6).

Écran 6 - Serveur ajouté avec PostgreSQL les tables

Ajout d'un serveur avec quelques clicks de la souris.

Étape 6 – Création d'un tableau à l'aide de l'interface Web.

Pour créer une table dans une base de données, vous devez :

  1. Sélectionnez Schémas dans le serverspacebase de données db, puis Tables ;
  2. Sélectionnez Créer -> Table. (voir écran 7)

Écran 7 - Création d'un tableau

La fenêtre Créer une table s'ouvrira, dans l'onglet Général. Saisissez ensuite le nom de la table dans le champ Nom. Le propriétaire et les schémas sont renseignés automatiquement. Si nécessaire, vous pouvez apporter des modifications à votre discrétion (voir écran 8).

Écran 8 - Nom du tableau

Allons dans l'onglet Colonnes, l'ajout d'une colonne est comme suit, appuyez sur le bouton "+", spécifiez Nom, Type de données et la valeur Non NULL pour que toutes les colonnes ne soient pas vides et sélectionnez Clé primaire pour spécifier la clé primaire et click Enregistrer (voir écran 9).

Écran 9 - Création de colonnes dans le tableau

La base de données configurée et notre table avec des colonnes sont apparues. Commençons à remplir la table avec SQL. Droite-click sur notre table et cliCliquez sur Scripts -> CREATE Script (voir écran 10).

Écran 10 - Création d'un script

Ajoutez un script pour remplir les colonnes, vous pouvez également ajouter plus d'informations séparées par des virgules (voir écran 11).

/*Ajouter des informations à un tableau*/
INSERT INTO public."test_table"(
/*Noms de ligne*/
test_col1,
test_col2,
test_col3)
/*Valeurs*/
VALEURS
/*Informations sur la ligne*/
('Test1', 10, 'Vrai'),
('Test2', 20, 'Faux'),
('Test3', 30, 'Vrai');

Écran 11 - Ajout d'un script

Exécutez le script avec le bouton (▶) et fermez la fenêtre de l'éditeur.

Pour visualiser les modifications apportées au tableau, procédez comme suit :

Écran 12 - Afficher toutes les lignes

Dans la fenêtre qui s'ouvre avec les résultats de la requête terminée, les données terminées sont stockées dans la section Sortie de données. (voir écran 13)

Écran 13 - Données enregistrées

La méthode utilisée est considérée comme l'une de celles utilisées pour créer le tableau et le remplir.
Cependant, l'exemple suivant utilise uniquement une requête SQL :

Écran 14 - Ouverture de l'outil de requête

Créez un tableau et des colonnes. Remplissez les champs créés avec le type de données, et les informations avec les valeurs "15, 'test_table2', 'True'" (voir écran 15) :

/*Créer une table appelée test_table2*/
Créer la table test_table2 (
/*Attributs du tableau*/
test_table1 entier,
test_table2 texte,
test_table3 booléen );
/*Script pour remplir le tableau*/
insérer dans test_table2 (
/*Saisir des données dans des tables et leurs attributs*/
test_table1,
test_table2,
table_test3 )
/*Valeurs d'attribut remplissables*/
valeurs (15, 'test_table2', 'True');

Écran 15 - Création et remplissage d'un tableau

Lors de la recherche d'une nouvelle table, nous ne trouverons pas la nouvelle table tant que nous n'aurons pas mis à jour le serverspacebase de données db.
Droite-cliCliquez sur la base de données et sélectionnez Actualiser. (voir écran 16)

Écran 16 - Mise à jour de la base de données

Voyons maintenant les résultats de notre requête de code. Les données sont renseignées conformément à la demande écrite (voir écran 17)

Écran 17 - Le résultat de la requête exécutée

Nous avons deux tables : une utilisant une interface visuelle et une utilisant SQL.

Conclusions

pgAdmin est un outil unique pour travailler avec une base de données en mode interface Web.
Comment travailler:

  1. Installer Ubuntu Serveur 22.04 ;
  2. Configurez ufw pour le port 80/tcp ;
  3. Installer Nginx, Python, PostgreSQL;
  4. Déployer l'environnement virtuel dans Python;
  5. Installez la bibliothèque Gunicorn ;
  6. Configurer un proxy inverse dans Nginx;
  7. Configurez Gunicorn et Nginx pour travailler ensemble;
  8. Exécutez le script d'installation du serveur virtuel pgAdmin ;
  9. Démarrez le serveur ;
  10. Accédez au serveur hôte local dans votre navigateur ;
  11. Ajouter un serveur, spécifier des données pour PostgreSQL;
  12. Créez le tableau, remplissez les données et modifiez-les.