Installation¶
Obs
Som påminnelse: byte till root på Debian-maskiner måste göras med följande kommando:
1 | |
Anvisningarna på denna sida ska följas vid installationen av alla noder i PostgreSQL-clustret.
Systeminställningar¶
Anslutning till maskinen¶
Som standard finns det två konton på de virtuella appliancerna: ett användarkonto och ett superanvändarkonto.
- Användarkonto
- Inloggning:
systancia - Lösenord:
systnci
- Inloggning:
- Superanvändarkonto
- Inloggning:
root - Lösenord:
systnci
- Inloggning:
Anslut till maskinen i konsolläge.
Obs
Standardtangentbordslayouten är QWERTY.
Ändring av tangentbordslayouten¶
Du kan ändra tangentbordslayouten med följande kommandorad:
1 | |
En meny visas där du kan välja en annan tangentbordslayout.
Använd därefter följande kommandorad för att tillämpa och spara inställningarna:
1 | |
Inställningarna får verkan omedelbart efter att detta kommando har körts.
Konfiguration av nätverket¶
Det kan hända att den virtuella appliancen inte får någon nätverkskonfiguration vid start, av följande skäl:
- Nätverksgränssnittets namn är inte
ens192: appliancen är konfigurerad för DHCP endast på gränssnittetens192 - Ingen DHCP-server är tillgänglig
Kör följande kommando som root för att kontrollera nätverksgränssnittets namn, dess status och de tilldelade IP-adresserna:
1 | |
Exempel
När kommandot har körts visas följande svar:
1 | |
Nätverksgränssnittets namn i exemplet är ens192, gränssnittet är aktivt och har IP-adressen 10.100.0.51/24.
Om namnet skiljer sig från ens192 eller om kommandot inte returnerar någon nätverkskonfiguration måste du konfigurera nätverket manuellt med följande kommandon:
1 2 | |
Ersätt:
IP_ADDRESSmed maskinens IP-adressSUBNETmed subnätetDEV_NAMEnamnet på det tidigare hämtade nätverksgränssnittetGATEWAYmed nätverkets gateway
Exempel
För att konfigurera PostgreSQL-noden med följande information:
- IP-adress:
10.100.0.51 - Subnät:
/24eller255.255.255.0 - Nätverksgränssnittets namn:
eth0 - Nätverkets gateway:
10.100.0.254
Kommandona är följande:
1 2 | |
Obs
Denna nätverkskonfiguration är tillfällig, därför återställer varje omstart av servern de manuella inställningar som gjorts med kommandona ip address och ip route.
Den permanenta konfigurationen utförs av konfigurationsverktyget för PostgreSQL-clustret.
Tack vare denna nätverkskonfiguration kan du dock nu komma åt PostgreSQL-noden via SSH.
Ändring av tidszonen¶
Som standard är den virtuella appliancen inställd på tidszonen Europe/Paris.
För att ändra denna tidszon, hämta först syntaxen för de tillgängliga tidszonerna med följande kommando:
1 | |
Använd därefter följande kommandorad:
1 | |
Exempel
För att ställa in tidszonen på London måste följande kommando köras:
1 | |
Kontrollera serverns tidszon med följande kommandorad:
1 | |
Konfiguration av en NTP-tidsserver¶
Fara
Det rekommenderas starkt att du konfigurerar en tidsserver för att hålla systemklockan uppdaterad: varje tidsskillnad mellan PostgreSQL-noderna kan orsaka instabilitet och till och med göra att clustret slutar fungera.
De nödvändiga stegen beskrivs på sidan om NTP-konfiguration (konfigurationen motsvarar den för Mediation Controller-servrarna i CyberElements Bastion).
Skapa en PKI för att generera certifikat för PostgreSQL-noderna¶
Information
Detta avsnitt är valfritt om du redan har en PKI som du har kunnat generera de certifikat som anges i förutsättningarna med.
Detta avsnitt presenterar de olika stegen för att skapa en PKI och de certifikat som krävs för PostgreSQL-clustret. Observera att det inte anges hur de förnyas, eftersom förnyelse av ett certifikat innebär att det skapas på nytt.
Observera!
Det beskrivna förfarandet har validerats på en Debian 12-maskin med paketet openssl. Alla maskiner med en aktuell version av OpenSSL (den validerade versionen är 3.0.17) kan dock genomföra förfarandet. Utom under Windows eller MacOS, där systemkommandona måste anpassas.
Definition av variabler och anpassningar¶
Detta avsnitt innehåller olika kommandon och konfigurationsfiler som använder variabler som kan ändras.
Tabellen nedan sammanfattar alla värden och gör det möjligt att definiera dem så att du kan ändra dem direkt i de kommandon som visas på denna sida.
| Värde | Variabel | Definition |
|---|---|---|
PSQL_IP |
Virtuell IP-adress för PostgreSQL-clustret. | |
PSQL_NAME |
Kort namn (inte FQDN) som är kopplat till PostgreSQL-clustrets virtuella IP-adress. | |
PSQL_1_IP |
IP-adress för nod nr 1 i PostgreSQL-clustret. | |
PSQL_1_NAME |
Kort namn (inte FQDN) för nod nr 1 i PostgreSQL-clustret. | |
PSQL_2_IP |
IP-adress för nod nr 2 i PostgreSQL-clustret. | |
PSQL_2_NAME |
Kort namn (inte FQDN) för nod nr 2 i PostgreSQL-clustret. | |
PSQL_3_IP |
IP-adress för nod nr 3 i PostgreSQL-clustret. | |
PSQL_3_NAME |
Kort namn (inte FQDN) för nod nr 3 i PostgreSQL-clustret. | |
CA_ROOT_NAME |
Namn som tilldelas rotcertifikatutfärdaren (CA) i PKI:n. |
Förberedelse¶
Följande åtgärder utförs i en ny katalog för att samla alla nya filer i en enda katalog. Vilken katalog som helst kan användas, men åtkomsten till den måste begränsas så mycket som möjligt. *Logga in på PostgreSQL-nod nr 1 som root och kör följande kommandon:
1 2 3 | |
Skapa rotcertifikatutfärdaren¶
Kör följande kommando för att skapa en ny rot-CA. Du uppmanas att ange ett lösenord för att skydda CA:n:
1 | |
Ersätt CA_ROOT_NAME med namnet på rot-CA:n om du inte har anpassat det här.
Skapa certifikaten¶
Kommandona som krävs för att generera certifikat för PostgreSQL-noderna är följande:
1 2 3 | |
Ersätt CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_1_IP och PSQL_1_NAME om du inte har anpassat dem här.
1 2 3 | |
Ersätt CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_2_IP och PSQL_2_NAME om du inte har anpassat dem här.
1 2 3 | |
Ersätt CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_3_IP och PSQL_3_NAME om du inte har anpassat dem här.
Det första kommandot skapar en ny nyckel, det andra genererar en fil med certifikatbegäran CSR och det tredje skapar själva certifikatet.
Det återstår bara att konvertera certifikatet till P12, vilket kräver att du anger ett lösenord:
1 | |
1 | |
1 | |
De filer som krävs för att installera PostgreSQL-clustret finns här (ersätt variablerna CA_ROOT_NAME, PSQL_1_NAME, PSQL_2_NAME och PSQL_3_NAME med de värden du valde tidigare):
/root/psql-certificates/CA_ROOT_NAME.crt: certifikat för rot-CA:n/root/psql-certificates/PSQL_1_NAME.p12: certifikat för PostgreSQL-nod nr 1/root/psql-certificates/PSQL_2_NAME.p12: certifikat för PostgreSQL-nod nr 2/root/psql-certificates/PSQL_3_NAME.p12: certifikat för PostgreSQL-nod nr 3
Installation av ett PostgreSQL-cluster¶
Information
Följande steg måste utföras på alla tre PostgreSQL-noderna.
Förberedelse av konfigurationen av PostgreSQL-clustret¶
En SFTP- eller SCP-anslutning måste upprättas för att skicka följande till appliancen:
- Certifikatet från den certifikatutfärdare som har signerat certifikaten för PostgreSQL-noderna
- Certifikatet för PostgreSQL-noden i formatet
P12
Observera att SFTP- eller SCP-anslutningar inte kan initieras med kontot root. Dessutom kan filerna helt enkelt placeras i /home/systancia/.
Dessa filer måste flyttas till en ny katalog:
1 2 3 | |
Ersätt:
PSQL_?_NAMEmed namnet på det certifikat som är avsett för den PostgreSQL-nod som installerasROOT_CA_NAMEmed namnet på rotcertifikatutfärdarens certifikat
1 2 3 | |
Kommandona ovan måste ha anpassats enligt anpassningsinställningarna.
1 2 3 | |
Kommandona ovan måste ha anpassats enligt anpassningsinställningarna.
1 2 3 | |
Kommandona ovan måste ha anpassats enligt anpassningsinställningarna.
Konfiguration av PostgreSQL-noden¶
För att starta initieringen av nodens konfiguration måste följande kommandon köras:
1 2 | |
Det andra kommandot startar ett verktyg som kräver följande information:
- Nya lösenord för de lokala användarna
rootochsystancia - Namnet på PostgreSQL-noden (inte FQDN)
- PostgreSQL-nodens IP-adress, namnet på dess nätverksgränssnitt, den standardgateway för nätverket som ska användas samt DNS-servrarna och DNS-suffixet
- Versionen av PostgreSQL; vi rekommenderar version
15 - Åtkomstporten till PostgreSQL-clustret; vi rekommenderar port
5432 - Lösenordet för det PostgreSQL-konto som används för replikering och för
pg_rewind - Namn och IP-adress för en andra PostgreSQL-nod
- Namn och IP-adress för den sista PostgreSQL-noden
- PostgreSQL-clustrets virtuella IP-adress
- IP-adresserna (åtskilda med kommatecken) för Edge Gateways i CyberElements Bastion eller för alla andra maskiner som behöver ansluta till clustret
- Namn och lösenord för PostgreSQL-användarkontot
- De IP-adresser eller nätverk (åtskilda med kommatecken) som har behörighet att ansluta via SSH till PostgreSQL-noderna
- Certifikatinformationen för PostgreSQL-noden (nodens certifikat i P12-format + rot-CA:ns certifikat)
När du har angett denna information visas en sammanfattning av alla dina uppgifter innan du bekräftar.
När du har bekräftat den angivna informationen visas ett meddelande om ändringar i filen /etc/ssh/sshd_config. Välj standardalternativet keep the local version currently installed.
För att tillämpa konfigurationen krävs en omstart:
1 | |
Tips för att snabba upp installationen av PostgreSQL-noderna nr 2 och nr 3
När du har installerat PostgreSQL-nod nr 1 kan du hämta de konfigurationsinställningar som användes vid installationen i filen /etc/cleanroom-vault.ini.
Exempel på filen /etc/cleanroom-vault.ini
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
Det räcker med att ändra de markerade raderna med värdena för den PostgreSQL-nod som installeras, utifrån den fil du hämtade från PostgreSQL-nod nr 1.
Fara
Om du återanvänder exempelfilen måste du ändra alla följande markerade värden efter din miljö:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | |
Ytterligare konfigurationer för patronictl¶
För att kommandona för hantering av PostgreSQL-clustret med patronictl ska kunna användas återstår några kommandon som ska köras som root på PostgreSQL-noden:
1 2 3 4 | |
Ytterligare konfigurationer för etcd¶
För att aktivera automatisk komprimering och defragmentering av databasen för etcd kör du följande kommandon som root på PostgreSQL-noden:
1 2 3 4 5 6 7 | |
Skapa databasen default som krävs för installationen av CyberElements Bastion¶
Vid installationen av CyberElements Bastion måste du först skapa en databas med namnet default.
Fyll i tabellen nedan för att anpassa det kommando som du behöver köra från valfri nod i PostgreSQL-clustret:
| Värde | Variabel | Definition |
|---|---|---|
PSQL_VIP |
Virtuell IP-adress för PostgreSQL-clustret. | |
DB_USER |
Databasens användarnamn som angavs vid konfigurationen av PostgreSQL-noden |
Kommando som ska köras från valfri nod i PostgreSQL-clustret:
1 | |