PostgreSQL und pgAdmin4 auf CentOS 7 installieren

PostgreSQL oder Postgres ist ein leistungsstarkes objektrelationales Datenbankmanagementsystem (ORDBMS), das unter einer flexiblen BSD-Lizenz veröffentlicht wird. PostgreSQL ist gut für große Datenbanken geeignet und verfügt über viele fortschrittliche Funktionen.

pgAdmin4 ist ein Open-Source-Verwaltungstool für PostgreSQL, das für mehrere PostgreSQL-Datenbankversionen entwickelt wurde. Es ist in Python und Jquery geschrieben und kann auf Windows, Mac und Linux installiert werden. Es bietet mehrere Bereitstellungsmodelle, kann als Desktop-Anwendung oder als Server-Anwendung installiert werden, die hinter einem Webserver wie Apache2 läuft.

In diesem Lernprogramm zeigen wir dir, wie du die neueste PostgreSQL-Datenbank und pgAdmin4 auf CentOS 7 Server installierst. Wir installieren PostgreSQL auf CentOS 7 Server und konfigurieren dann das Passwort für den Standardbenutzer „postgres“. Danach installieren und konfigurieren wir das PostgreSQL-Verwaltungstool pgAdmin4.

Was wir tun werden:

  • Abhängigkeiten installieren
  • PostgreSQL 11 auf CentOS 7 installieren
  • PostgreSQL-Benutzer und -Authentifizierung konfigurieren
  • Installiere pgAdmin4 auf CentOS 7
  • Konfiguriere pgAdmin4
  • SELinux für PostgreSQL und pgAdmin4 einrichten
  • Firewalld einrichten
  • Testen

Schritt 1 – Installation der Abhängigkeiten

Als Erstes aktualisieren wir alle Pakete auf die neueste Version und installieren einige Pakete, die für dieses Tutorial benötigt werden.

Aktualisiere nun alle Pakete auf die neueste Version und füge das EPEL-Repository zum CentOS 7-System hinzu.

Führe den unten stehenden yum-Befehl aus.

sudo yum update
sudo yum -y install epel-release

Danach installierst du einige Pakete, die für diesen Lehrgang benötigt werden, z.B. SELinux Policy Management, firewalld, vim editor und net-tools.

sudo yum -y install policycoreutils-python firewalld vim net-tools

Nun sind alle benötigten Pakete auf dem CentOS 7 System installiert.

Schritt 2 – PostgreSQL installieren

In diesem Schritt werden wir PostgreSQL aus dem offiziellen Repository installieren. Dazu müssen wir das PostgreSQL Repository für CentOS 7 zu unserem System hinzufügen.

Füge das PostgreSQL Repository für CentOS 7 mit folgendem Befehl hinzu.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Überprüfe nun alle auf dem System verfügbaren Dateien.

sudo yum repolist

Du wirst sehen, dass das PostgreSQL-Repository zum CentOS 7-System hinzugefügt wurde.

Als Nächstes installieren wir die neueste PostgreSQL-Version „11“ und richten die PostgreSQL-Datenbank ein.

Installiere PostgreSQL 11 mit dem unten stehenden yum-Befehl.

sudo yum -y install postgresql11 postgresql11-server postgresql11-contrib

Sobald die Installation abgeschlossen ist, initialisiere die PostgreSQL-Datenbank mit dem folgenden Befehl, der von PostgreSQL selbst bereitgestellt wird.

/usr/pgsql-11/bin/postgresql-11-setup initdb

Jetzt kannst du den PostgreSQL-Dienst starten. Starte den PostgreSQL-Dienst und füge ihn zum Systemstart hinzu.

systemctl start postgresql-11
systemctl enable postgresql-11

Der PostgreSQL 11 Dienst ist nun auf dem CentOS 7 System eingerichtet und läuft.

Schritt 3 – PostgreSQL Benutzer und Authentifizierung einrichten

Nach der Installation von PostgreSQL 11 auf dem CentOS 7-System richten wir das Passwort für den Benutzer „postgres“ ein und ändern die standardmäßige Authentifizierungsmethode „ident“ in „md5“.

Um das Passwort für den „postgres“-Benutzer einzurichten, musst du dich mit dem „postgres“-Benutzer anmelden und die PostgreSQL-Befehlszeilenschnittstelle „psql“ aufrufen.

su - postgres
psql

Ändere das Passwort für den Benutzer „postgres“ mit der folgenden Abfrage.

\password postgres
TYPE YOUR PASSWORD

Sobald die Abfrage abgeschlossen ist, gibst du „exit“ ein, um dich von der „psql“-Schnittstelle und dem „postgres“-Benutzer abzumelden.

Als Nächstes ändern wir die Authentifizierungsmethode für alle internen Zugriffe auf „md5“.

Gehe in das Verzeichnis „/var/lib/pgsql/11/data/“ und bearbeite die Konfigurationsdatei „pg_hba.conf“ mit dem Editor vim.

cd /var/lib/pgsql/11/data/
vim pg_hba.conf

Ändere die Authentifizierungszeile für den Host „127.0.0.1/32“ von „ident“ auf „md5“.

host    all             all             127.0.0.1/32            md5

Speichere und schließe.

Starte nun den PostgreSQL-Dienst neu.

systemctl restart postgresql-11

Nun kannst du dich mit dem Passwort, das du gerade eingerichtet hast, mit der Datenbank verbinden.

Teste die Konfiguration mit dem Befehl psql wie unten beschrieben.

psql -h 127.0.0.1 -U postgres
Password:

Gib das soeben erstellte Passwort ein und vergewissere dich, dass du dich mit diesem Passwort an der PostgreSQL-Befehlszeilenschnittstelle anmelden kannst.

Die Installation und Konfiguration von PostgreSQL 11 auf dem CentOS 7 System ist damit abgeschlossen.

Schritt 4 – Installation von pgAdmin4

In diesem Schritt installieren wir „pgAdmin4“ auf dem CentOS 7 System.

Installiere das Paket pgAdmin4 mit dem unten stehenden yum-Befehl.

sudo yum -y install pgadmin4

Wenn du das Paket pgAdmin4 installierst, installiert es automatisch alle abhängigen Pakete, einschließlich des Webservers httpd und pgAdmin-web.

Wenn die Installation abgeschlossen ist, starte den httpd-Dienst und füge ihn zum Startzeitpunkt hinzu.

systemctl start httpd
systemctl enable httpd

Jetzt läuft pgAdmin4 mit der Standardkonfiguration unter dem httpd-Webserver.

Schritt 5 – pgAdmin4 konfigurieren

In diesem Schritt werden wir pgAdmin4 auf dem CentOS 7 System konfigurieren. Wir legen das Daten-/Speicher- und das Log-Verzeichnis für pgAdmin4 fest und richten dann den Benutzer admin für pgAdmin4 ein.

Bevor du weitermachst, gehst du in das Verzeichnis „/etc/httpd/conf.d“ und benennst das Beispiel der pgAdmin4-Konfiguration in „pgadmin4.conf“ um.

cd /etc/httpd/conf.d/
mv pgadmin4.conf.sample pgadmin4.conf

Erstelle nun ein neues Daten- und Log-Verzeichnis für den pgAdmin4.

mkdir -p /var/log/pgadmin4/
mkdir -p /var/lib/pgadmin4/{sessions,storage}

Im Datenverzeichnis „/var/lib/pgadmin4/“ werden alle pgAdmin4-Konfigurationen gespeichert, und alle pgAdmin4-Logs sind im Verzeichnis „/var/log/pgadmin4“ verfügbar.

Danach müssen wir das Daten- und Log-Verzeichnis in der pgAdmin4-Konfiguration festlegen. Bearbeite die pgAdmin4-Konfigurationsdatei „config.py“ mit dem vim-Editor wie folgt.

vim /usr/lib/python2.7/site-packages/pgadmin4-web/config.py

Füge die folgende Konfiguration in der untersten Zeile ein.

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/storage'

Speichere und schließe.

Als Nächstes erstellst du mit dem pgAdmin-Setup-Skript einen neuen Admin-Benutzer für pgAdmin4 (siehe unten).

python /usr/lib/python2.7/site-packages/pgadmin4-web/setup.py

Gib deine E-Mail-Adresse und dein Passwort ein und du erhältst das unten stehende Ergebnis.

Damit ist der pgAdmin-Admin-Benutzer erstellt worden.

Jetzt müssen wir den httpd-Dienst neu starten.

systemctl restart httpd

Und den Besitzer des pgAdmin4-Daten- und Log-Verzeichnisses auf den Benutzer „apache“ ändern.

chown -R apache:apache /var/lib/pgadmin4/
chown -R apache:apache /var/log/pgadmin4/

Damit ist die Konfiguration von pgAdmin4 abgeschlossen.

Schritt 6 – SELinux für pgAdmin4 konfigurieren

Wenn du pgAdmin4 auf einem CentOS 7-Server mit dem SELinux-Modus „enforcing“ installierst, musst du diesen Abschnitt ausführen.

Überprüfe den Status von SELinux mit dem unten stehenden Befehl.

sestatus

Unten siehst du das Ergebnis des SELinux mit dem Modus „Enforcing“.

Als Erstes müssen wir dem httpd-Dienst erlauben, sich mit dem Netzwerk zu verbinden. Erlaube dem pgAdmin4 unter dem httpd-Webserver den Zugriff auf den PostgreSQL-Server unter der lokalen IP-Adresse „127.0.0.1“ mit Port „5432“.

Führe den unten stehenden Befehl setsebool aus.

setsebool -P httpd_can_network_connect 1

Danach müssen wir den Kontext und das Label aller pgAdmin4-Dateien im Daten- und Log-Verzeichnis zum „httpd_sys_rw_content_t“ hinzufügen.

sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/lib/pgadmin4(/.*)?"
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/log/pgadmin4(/.*)?"

Anschließend stellen wir den SELinux-Kontext der Dateien im Daten- und Log-Verzeichnis wieder her.

sudo restorecon -R /var/lib/pgadmin4/
sudo restorecon -R /var/log/pgadmin4/

Damit ist die SELinux-Konfiguration für pgAdmin4 abgeschlossen.

Schritt 7 – Firewalld einrichten

In diesem Schritt fügen wir HTTP- und HTTPS-Dienste zur Firewalld-Konfiguration hinzu.

Verwende den folgenden Befehl, um die HTTP- und HTTPS-Dienste zu den Firewalld-Regeln hinzuzufügen.

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

Lade nun die Firewall-Regeln neu.

firewall-cmd --reload

Die Firewalld-Konfiguration ist nun abgeschlossen und pgAdmin4 ist über den httpd-Webserver erreichbar.

Schritt 8 – Testen

Öffne deinen Webbrowser und gib die IP-Adresse des Servers und den URL-Pfad „/pgadmin4“ in die Adresszeile ein.

http://10.5.5.15/pgadmin4

Daraufhin wird die Anmeldeseite von pgAdmin4 angezeigt.

Melde dich mit deiner E-Mail-Adresse und dem Passwort an, das bei der Installation festgelegt wurde, und klicke dann auf die Schaltfläche „Anmelden“.

Sobald du in pgAdmin4 eingeloggt bist, siehst du das unten abgebildete Dashboard.

Danach müssen wir unseren PostgreSQL-Server zum pgAdmin4-Verwaltungstool hinzufügen.

Klicke im pgAdmin4-Dashboard auf die Schaltfläche „Add New Server“.

Auf der Registerkarte „Allgemein“ gibst du den Namen des neuen Servers ein. Gib auf der Registerkarte „Verbindung“ Details zu deinem PostgreSQL-Server ein, darunter Host/IP-Adresse, Benutzername und Passwort.

Klicke jetzt auf die Schaltfläche „Speichern“.

Sobald der PostgreSQL-Server hinzugefügt wurde, siehst du die Details zu deinem PostgreSQL-Server im linken Menü.

Damit ist die Installation und Konfiguration von PostgreSQL und pgAdmin4 auf dem CentOS 7 Server erfolgreich abgeschlossen.

Referenz

Das könnte dich auch interessieren …