Installation¶
Bemærk
Til påmindelse: skift til root på Debian-maskiner skal ske med følgende kommando:
1 | |
Anvisningerne på denne side skal følges ved installationen af alle noder i PostgreSQL-clusteret.
Systemindstillinger¶
Forbindelse til maskinen¶
Som standard findes der to konti på de virtuelle appliances: en brugerkonto og en superbrugerkonto.
- Brugerkonto
- Login:
systancia - Adgangskode:
systnci
- Login:
- Superbrugerkonto
- Login:
root - Adgangskode:
systnci
- Login:
Forbind til maskinen i konsoltilstand.
Bemærk
Standardtastaturlayoutet er QWERTY.
Ændring af tastaturlayoutet¶
Du kan ændre tastaturlayoutet med følgende kommandolinje:
1 | |
Der vises en menu, hvor du kan vælge et andet tastaturlayout.
Brug derefter følgende kommandolinje til at anvende og gemme indstillingerne:
1 | |
Indstillingerne træder i kraft umiddelbart efter, at denne kommando er udført.
Konfiguration af netværket¶
Den virtuelle appliance modtager muligvis ikke en netværkskonfiguration ved opstart af følgende årsager:
- Navnet på netværksgrænsefladen er ikke
ens192: appliancen er konfigureret til DHCP kun på grænsefladenens192 - Der er ingen DHCP-server tilgængelig
Kør følgende kommando som root for at kontrollere navnet på netværksgrænsefladen, dens status og de tildelte IP-adresser:
1 | |
Eksempel
Efter udførelsen af kommandoen vises følgende svar:
1 | |
Navnet på netværksgrænsefladen i eksemplet er ens192, grænsefladen er aktiv og har IP-adressen 10.100.0.51/24.
Hvis navnet er forskelligt fra ens192, eller hvis kommandoen ikke returnerer nogen netværksindstillinger, skal du konfigurere netværket manuelt med følgende kommandoer:
1 2 | |
Erstat:
IP_ADDRESSmed maskinens IP-adresseSUBNETmed undernettetDEV_NAMEnavnet på den netværksgrænseflade, der blev fundet tidligereGATEWAYmed netværkets gateway
Eksempel
For at konfigurere PostgreSQL-noden med følgende oplysninger:
- IP-adresse:
10.100.0.51 - Undernet:
/24eller255.255.255.0 - Navn på netværksgrænsefladen:
eth0 - Netværkets gateway:
10.100.0.254
Kommandoerne er som følger:
1 2 | |
Bemærk
Denne netværkskonfiguration er midlertidig, og enhver genstart af serveren nulstiller derfor de manuelle indstillinger, der er foretaget med kommandoerne ip address og ip route.
Den permanente konfiguration udføres af konfigurationsværktøjet til PostgreSQL-clusteret.
Takket være denne netværkskonfiguration kan du dog nu få adgang til PostgreSQL-noden via SSH.
Ændring af tidszonen¶
Som standard er den virtuelle appliance indstillet til tidszonen Europe/Paris.
For at ændre denne tidszone skal du først med følgende kommando hente skrivemåden for de tilgængelige tidszoner:
1 | |
Brug derefter følgende kommandolinje:
1 | |
Eksempel
For at indstille tidszonen til London skal følgende kommando udføres:
1 | |
Kontrollér serverens tidszone med følgende kommandolinje:
1 | |
Konfiguration af en NTP-tidsserver¶
Fare
Det anbefales stærkt at konfigurere en tidsserver for at holde systemuret opdateret: enhver tidsforskel mellem PostgreSQL-noderne kan medføre ustabilitet eller endda få clusteret til at holde op med at fungere.
De nødvendige trin er beskrevet på siden om NTP-konfiguration (konfigurationen svarer til den for Mediation Controller-serverne i CyberElements Bastion).
Oprettelse af en PKI til at generere certifikater til PostgreSQL-noderne¶
Information
Dette afsnit er valgfrit, hvis du allerede har en PKI, hvorfra du har kunnet generere de certifikater, der er angivet i forudsætningerne.
Dette afsnit præsenterer de forskellige trin til oprettelse af en PKI og de certifikater, der kræves til PostgreSQL-clusteret. Bemærk, at det ikke angives, hvordan de fornyes, da fornyelse af et certifikat indebærer, at det oprettes igen.
Vigtigt!
Den beskrevne procedure er valideret på en Debian 12-maskine med pakken openssl. Enhver maskine med en nyere version af OpenSSL (den validerede version er 3.0.17) kan dog gennemføre proceduren. Undtagen under Windows eller MacOS, hvor systemkommandoerne skal tilpasses.
Definition af variabler og tilpasninger¶
Dette afsnit indeholder forskellige kommandoer og konfigurationsfiler, der bruger variabler, som kan ændres.
Tabellen nedenfor opsummerer alle værdierne og giver dig mulighed for at definere dem, så du kan ændre dem direkte i de kommandoer, der vises på denne side.
| Værdi | Variabel | Definition |
|---|---|---|
PSQL_IP |
Virtuel IP-adresse for PostgreSQL-clusteret. | |
PSQL_NAME |
Kort navn (ikke FQDN'et), der er knyttet til PostgreSQL-clusterets virtuelle IP-adresse. | |
PSQL_1_IP |
IP-adresse for node nr. 1 i PostgreSQL-clusteret. | |
PSQL_1_NAME |
Kort navn (ikke FQDN'et) for node nr. 1 i PostgreSQL-clusteret. | |
PSQL_2_IP |
IP-adresse for node nr. 2 i PostgreSQL-clusteret. | |
PSQL_2_NAME |
Kort navn (ikke FQDN'et) for node nr. 2 i PostgreSQL-clusteret. | |
PSQL_3_IP |
IP-adresse for node nr. 3 i PostgreSQL-clusteret. | |
PSQL_3_NAME |
Kort navn (ikke FQDN'et) for node nr. 3 i PostgreSQL-clusteret. | |
CA_ROOT_NAME |
Navn, der tildeles PKI'ens rodcertificeringsmyndighed (CA). |
Forberedelse¶
Følgende handlinger udføres i en ny mappe for at samle alle de nye filer i én mappe. Der kan bruges en vilkårlig mappe, men adgangen til den skal begrænses så meget som muligt. *Log på PostgreSQL-node nr. 1 som root og kør følgende kommandoer:
1 2 3 | |
Oprettelse af rodcertificeringsmyndigheden¶
Kør følgende kommando for at oprette en ny rod-CA. Du bliver bedt om en adgangskode til at beskytte CA'en:
1 | |
Erstat CA_ROOT_NAME med navnet på rod-CA'en, hvis du ikke har tilpasset det her.
Oprettelse af certifikater¶
De kommandoer, der kræves for at generere certifikater til PostgreSQL-noderne, er som følger:
1 2 3 | |
Erstat CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_1_IP og PSQL_1_NAME, hvis du ikke har tilpasset dem her.
1 2 3 | |
Erstat CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_2_IP og PSQL_2_NAME, hvis du ikke har tilpasset dem her.
1 2 3 | |
Erstat CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_3_IP og PSQL_3_NAME, hvis du ikke har tilpasset dem her.
Den første kommando opretter en ny nøgle, den anden genererer en CSR-fil med certifikatanmodningen, og den tredje opretter selve certifikatet.
Certifikatet skal nu blot konverteres til P12, hvilket kræver, at du angiver en adgangskode:
1 | |
1 | |
1 | |
De filer, der kræves for at installere PostgreSQL-clusteret, findes her (erstat variablerne CA_ROOT_NAME, PSQL_1_NAME, PSQL_2_NAME og PSQL_3_NAME med de værdier, du valgte tidligere):
/root/psql-certificates/CA_ROOT_NAME.crt: certifikat for rod-CA'en/root/psql-certificates/PSQL_1_NAME.p12: certifikat til PostgreSQL-node nr. 1/root/psql-certificates/PSQL_2_NAME.p12: certifikat til PostgreSQL-node nr. 2/root/psql-certificates/PSQL_3_NAME.p12: certifikat til PostgreSQL-node nr. 3
Installation af et PostgreSQL-cluster¶
Information
Følgende trin skal udføres på alle tre PostgreSQL-noder.
Forberedelse af konfigurationen af PostgreSQL-clusteret¶
Det er nødvendigt at oprette en SFTP- eller SCP-forbindelse for at sende følgende til appliancen:
- Certifikatet fra den certificeringsmyndighed, der har signeret certifikaterne til PostgreSQL-noderne
- PostgreSQL-nodens certifikat i formatet
P12
Bemærk, at SFTP- eller SCP-forbindelser ikke kan initialiseres med kontoen root. Desuden kan filerne blot placeres i /home/systancia/.
Disse filer skal flyttes til en ny mappe:
1 2 3 | |
Erstat:
PSQL_?_NAMEmed navnet på det certifikat, der er beregnet til den PostgreSQL-node, som installeresROOT_CA_NAMEmed navnet på rodcertificeringsmyndighedens certifikat
1 2 3 | |
Kommandoerne ovenfor skal være tilpasset i henhold til tilpasningsindstillingerne.
1 2 3 | |
Kommandoerne ovenfor skal være tilpasset i henhold til tilpasningsindstillingerne.
1 2 3 | |
Kommandoerne ovenfor skal være tilpasset i henhold til tilpasningsindstillingerne.
Konfiguration af PostgreSQL-noden¶
For at starte initialiseringen af nodens konfiguration skal følgende kommandoer udføres:
1 2 | |
Den anden kommando starter et værktøj, der kræver følgende oplysninger:
- Nye adgangskoder til de lokale brugere
rootogsystancia - Navnet på PostgreSQL-noden (ikke FQDN'et)
- PostgreSQL-nodens IP-adresse, navnet på dens netværksgrænseflade, den standardgateway på netværket, der skal bruges, samt DNS-serverne og DNS-suffikset
- Versionen af PostgreSQL; vi anbefaler at bruge version
15 - Adgangsporten til PostgreSQL-clusteret; vi anbefaler at bruge porten
5432 - Adgangskode til den PostgreSQL-konto, der bruges til replikering og til
pg_rewind - Navn og IP-adresse på en anden PostgreSQL-node
- Navn og IP-adresse på den sidste PostgreSQL-node
- Virtuel IP-adresse for PostgreSQL-clusteret
- IP-adresserne (adskilt af kommaer) på Edge Gateways i CyberElements Bastion eller på alle andre maskiner, der skal forbinde til clusteret
- Navn og adgangskode på PostgreSQL-brugerkontoen
- De IP-adresser eller netværk (adskilt af kommaer), der har tilladelse til at forbinde via SSH til PostgreSQL-noderne
- Certifikatoplysninger for PostgreSQL-noden (nodens certifikat i P12-format + rod-CA'ens certifikat)
Når disse oplysninger er indtastet, vises en oversigt over alle dine angivelser før bekræftelsen.
Efter bekræftelsen af de angivne oplysninger vises en meddelelse om ændringerne i filen /etc/ssh/sshd_config. Vælg standardindstillingen keep the local version currently installed.
For at anvende konfigurationen kræves en genstart:
1 | |
Tip til at fremskynde installationen af PostgreSQL-node nr. 2 og nr. 3
Efter installationen af PostgreSQL-node nr. 1 kan du hente de konfigurationsindstillinger, der blev brugt til at opsætte den, i filen /etc/cleanroom-vault.ini.
Eksempel 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 er nok at ændre de fremhævede linjer med værdierne for den PostgreSQL-node, der installeres, ud fra den fil, du hentede fra PostgreSQL-node nr. 1.
Fare
Hvis du genbruger eksempelfilen, skal du ændre alle følgende fremhævede værdier i henhold til dit 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 | |
Yderligere konfigurationer til patronictl¶
For at kommandoerne til styring af PostgreSQL-clusteret med patronictl kan bruges, skal der køres nogle få kommandoer mere som root på PostgreSQL-noden:
1 2 3 4 | |
Yderligere konfigurationer for etcd¶
For at slå automatisk komprimering og defragmentering af databasen for etcd til skal du køre følgende kommandoer som root på PostgreSQL-noden:
1 2 3 4 5 6 7 | |
Oprettelse af databasen default, der kræves til installationen af CyberElements Bastion¶
Ved installationen af CyberElements Bastion skal du først oprette en database med navnet default.
Udfyld dertil følgende tabel for at tilpasse den kommando, du skal køre fra en vilkårlig enkelt node i PostgreSQL-clusteret:
| Værdi | Variabel | Definition |
|---|---|---|
PSQL_VIP |
Virtuel IP-adresse for PostgreSQL-clusteret. | |
DB_USER |
Databasens brugernavn, der blev angivet under konfigurationen af PostgreSQL-noden |
Kommando, der skal udføres fra en vilkårlig af noderne i PostgreSQL-clusteret:
1 | |