Instalacja¶
Uwaga
Przypomnienie: przejście na root na maszynach Debian musi odbywać się za pomocą następującego polecenia:
1 | |
Instrukcje podane na tej stronie stosuj przy instalacji wszystkich węzłów clustera PostgreSQL.
Ustawienia systemowe¶
Połączenie z maszyną¶
Na wirtualnych appliance domyślnie istnieją dwa konta: konto użytkownika i konto superużytkownika.
- Konto użytkownika
- Login:
systancia - Hasło:
systnci
- Login:
- Konto superużytkownika
- Login:
root - Hasło:
systnci
- Login:
Połącz się z maszyną w trybie konsoli.
Uwaga
Domyślny układ klawiatury to QWERTY.
Zmiana układu klawiatury¶
Układ klawiatury możesz zmienić następującym wierszem poleceń:
1 | |
Pojawi się menu pozwalające wybrać inny układ klawiatury.
Następnie użyj poniższego wiersza poleceń, aby zastosować i zapisać ustawienia:
1 | |
Ustawienia zaczną obowiązywać natychmiast po wykonaniu tego polecenia.
Konfiguracja sieci¶
Wirtualna appliance może nie otrzymać konfiguracji sieci przy uruchomieniu z następujących powodów:
- Nazwa interfejsu sieciowego nie jest
ens192: appliance jest skonfigurowana dla DHCP tylko na interfejsieens192 - Żaden serwer DHCP nie jest dostępny
Aby sprawdzić nazwę interfejsu sieciowego, jego stan i przypisane adresy IP, wykonaj następujące polecenie jako root:
1 | |
Przykład
Po wykonaniu polecenia wyświetlana jest następująca odpowiedź:
1 | |
Nazwa interfejsu sieciowego w przykładzie to ens192, interfejs jest aktywny i ma adres IP 10.100.0.51/24.
Jeśli nazwa różni się od ens192 lub jeśli polecenie nie zwraca żadnej konfiguracji sieci, musisz skonfigurować sieć ręcznie za pomocą następujących poleceń:
1 2 | |
Zamień:
IP_ADDRESSadresem IP maszynySUBNETpodsieciąDEV_NAMEnazwa wcześniej odczytanego interfejsu sieciowegoGATEWAYbramą sieciową
Przykład
Aby skonfigurować węzeł PostgreSQL z następującymi informacjami:
- Adres IP:
10.100.0.51 - Podsieć:
/24lub255.255.255.0 - Nazwa interfejsu sieciowego:
eth0 - Brama sieciowa:
10.100.0.254
Polecenia są następujące:
1 2 | |
Uwaga
Ta konfiguracja sieci jest tymczasowa, dlatego każde ponowne uruchomienie serwera wyzeruje ręczne ustawienia wprowadzone poleceniami ip address i ip route.
Konfiguracja trwała zostanie wykonana przez narzędzie konfiguracyjne clustera PostgreSQL.
Dzięki tej konfiguracji sieci możesz jednak teraz uzyskać dostęp do węzła PostgreSQL przez SSH.
Zmiana strefy czasowej¶
Wirtualne appliance jest domyślnie ustawione na strefę czasową Europe/Paris.
Aby zmienić tę strefę czasową, najpierw pobierz zapis dostępnych stref czasowych następującym poleceniem:
1 | |
Następnie użyj poniższego wiersza poleceń:
1 | |
Przykład
Aby ustawić strefę czasową na Londyn, należy wykonać następujące polecenie:
1 | |
Sprawdź strefę czasową serwera następującym wierszem poleceń:
1 | |
Konfiguracja serwera czasu NTP¶
Niebezpieczeństwo
Zdecydowanie zalecamy skonfigurowanie serwera czasu, aby zegar systemowy pozostawał aktualny: każda różnica czasu między węzłami PostgreSQL może powodować niestabilność, a nawet zatrzymanie działania clustera.
Niezbędne kroki opisano na stronie konfiguracji NTP (konfiguracja jest równoważna z konfiguracją serwerów Mediation Controller CyberElements Bastion).
Tworzenie PKI do generowania certyfikatów węzłów PostgreSQL¶
Informacja
Ta sekcja jest opcjonalna, jeśli masz już PKI, za pomocą której udało Ci się wygenerować certyfikaty wskazane w wymaganiach wstępnych.
Ta sekcja przedstawi poszczególne kroki tworzenia PKI oraz certyfikatów wymaganych dla clustera PostgreSQL. Nie zostanie wskazane, jak je odnawiać, ponieważ odnowienie certyfikatu polega na jego ponownym utworzeniu.
Uwaga!
Opisana procedura została zwalidowana na maszynie z systemem Debian 12 z pakietem openssl. Procedurę może jednak przeprowadzić każda maszyna z aktualną wersją OpenSSL (zwalidowana wersja to 3.0.17). Z wyjątkiem systemów Windows lub MacOS, gdzie polecenia systemowe trzeba będzie dostosować.
Definicja zmiennych i dostosowań¶
Ta sekcja udostępnia różne polecenia i pliki konfiguracyjne, które używają zmiennych możliwych do zmiany.
Poniższa tabela podsumowuje wszystkie wartości i pozwala je zdefiniować, aby móc zmienić je bezpośrednio w poleceniach wyświetlanych na tej stronie.
| Wartość | Zmienna | Definicja |
|---|---|---|
PSQL_IP |
Wirtualny adres IP clustera PostgreSQL. | |
PSQL_NAME |
Krótka nazwa (nie FQDN) powiązana z wirtualnym adresem IP clustera PostgreSQL. | |
PSQL_1_IP |
Adres IP węzła nr 1 clustera PostgreSQL. | |
PSQL_1_NAME |
Krótka nazwa (nie FQDN) węzła nr 1 clustera PostgreSQL. | |
PSQL_2_IP |
Adres IP węzła nr 2 clustera PostgreSQL. | |
PSQL_2_NAME |
Krótka nazwa (nie FQDN) węzła nr 2 clustera PostgreSQL. | |
PSQL_3_IP |
Adres IP węzła nr 3 clustera PostgreSQL. | |
PSQL_3_NAME |
Krótka nazwa (nie FQDN) węzła nr 3 clustera PostgreSQL. | |
CA_ROOT_NAME |
Nazwa przypisana głównemu urzędowi certyfikacji (CA) infrastruktury PKI. |
Przygotowanie¶
Poniższe działania zostaną wykonane w nowym katalogu, aby zebrać wszystkie nowe pliki w jednym miejscu. Można użyć dowolnego katalogu, ale dostęp do niego musi być ograniczony w jak największym stopniu. *Zaloguj się na węźle PostgreSQL nr 1 jako root i wykonaj następujące polecenia:
1 2 3 | |
Tworzenie głównego urzędu certyfikacji¶
Wykonaj następujące polecenie, aby utworzyć nowy główny urząd CA. Zostaniesz poproszony o hasło chroniące CA:
1 | |
Zamień CA_ROOT_NAME na nazwę głównego CA, jeśli nie dostosowałeś jej tutaj.
Tworzenie certyfikatów¶
Polecenia wymagane do wygenerowania certyfikatów węzłów PostgreSQL są następujące:
1 2 3 | |
Zamień CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_1_IP i PSQL_1_NAME, jeśli nie dostosowałeś ich tutaj.
1 2 3 | |
Zamień CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_2_IP i PSQL_2_NAME, jeśli nie dostosowałeś ich tutaj.
1 2 3 | |
Zamień CA_ROOT_NAME, PSQL_IP, PSQL_NAME, PSQL_3_IP i PSQL_3_NAME, jeśli nie dostosowałeś ich tutaj.
Pierwsze polecenie tworzy nowy klucz, drugie generuje plik żądania podpisania certyfikatu CSR, a trzecie tworzy sam certyfikat.
Pozostaje jedynie przekonwertować certyfikat na P12, co będzie wymagać ustawienia hasła:
1 | |
1 | |
1 | |
Pliki wymagane do instalacji clustera PostgreSQL znajdują się tutaj (zamień zmienne CA_ROOT_NAME, PSQL_1_NAME, PSQL_2_NAME i PSQL_3_NAME na wybrane wcześniej wartości):
/root/psql-certificates/CA_ROOT_NAME.crt: certyfikat głównego CA/root/psql-certificates/PSQL_1_NAME.p12: certyfikat węzła PostgreSQL nr 1/root/psql-certificates/PSQL_2_NAME.p12: certyfikat węzła PostgreSQL nr 2/root/psql-certificates/PSQL_3_NAME.p12: certyfikat węzła PostgreSQL nr 3
Instalacja clustera PostgreSQL¶
Informacja
Poniższe kroki muszą zostać wykonane na wszystkich trzech węzłach PostgreSQL.
Przygotowanie do konfiguracji clustera PostgreSQL¶
Konieczne jest ustanowienie połączenia SFTP lub SCP, aby przesłać do appliance:
- Certyfikat urzędu certyfikacji, który podpisał certyfikaty węzłów PostgreSQL
- Certyfikat węzła PostgreSQL w formacie
P12
Zwróć uwagę, że połączeń SFTP lub SCP nie można inicjować przy użyciu konta root. Ponadto pliki można po prostu umieścić w /home/systancia/.
Te pliki należy przenieść do nowego katalogu:
1 2 3 | |
Zamień:
PSQL_?_NAMEnazwą certyfikatu przeznaczonego dla instalowanego węzła PostgreSQLROOT_CA_NAMEnazwą certyfikatu głównego urzędu certyfikacji
1 2 3 | |
Powyższe polecenia muszą być dostosowane zgodnie z ustawieniami dostosowania.
1 2 3 | |
Powyższe polecenia muszą być dostosowane zgodnie z ustawieniami dostosowania.
1 2 3 | |
Powyższe polecenia muszą być dostosowane zgodnie z ustawieniami dostosowania.
Konfiguracja węzła PostgreSQL¶
Aby rozpocząć inicjalizację konfiguracji węzła, trzeba wykonać następujące polecenia:
1 2 | |
Drugie polecenie uruchomi narzędzie, które będzie wymagać następujących informacji:
- Nowe hasła lokalnych użytkowników
rootisystancia - Nazwa węzła PostgreSQL (nie FQDN)
- Adres IP węzła PostgreSQL, nazwa jego interfejsu sieciowego, domyślna brama sieciowa, której należy użyć, a także serwery DNS i sufiks DNS
- Wersja PostgreSQL; zalecamy użycie wersji
15 - Port dostępu do clustera PostgreSQL; zalecamy użycie portu
5432 - Hasło konta PostgreSQL używanego do replikacji i do
pg_rewind - Nazwa i adres IP drugiego węzła PostgreSQL
- Nazwa i adres IP ostatniego węzła PostgreSQL
- Wirtualny adres IP clustera PostgreSQL
- Adresy IP (rozdzielone przecinkami) serwerów Edge Gateway CyberElements Bastion lub wszystkich innych maszyn, które muszą łączyć się z clusterem
- Nazwa i hasło konta użytkownika PostgreSQL
- Adresy IP lub sieci (rozdzielone przecinkami) uprawnione do łączenia się przez SSH z węzłami PostgreSQL
- Informacje o certyfikacie węzła PostgreSQL (certyfikat węzła w formacie P12 + certyfikat głównego CA)
Po wprowadzeniu tych informacji, przed zatwierdzeniem wyświetlone zostanie podsumowanie wszystkich Twoich wpisów.
Po zatwierdzeniu podanych informacji pojawi się komunikat dotyczący zmian w pliku /etc/ssh/sshd_config. Wybierz opcję domyślną, keep the local version currently installed.
Aby zastosować konfigurację, wymagane jest ponowne uruchomienie:
1 | |
Wskazówka przyspieszająca instalację węzłów PostgreSQL nr 2 i nr 3
Po instalacji węzła PostgreSQL nr 1 możesz odczytać ustawienia konfiguracyjne użyte do jego przygotowania z pliku /etc/cleanroom-vault.ini.
Przykład pliku /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 | |
Wystarczy zmienić wyróżnione wiersze na wartości instalowanego węzła PostgreSQL, opierając się na pliku odczytanym z węzła PostgreSQL nr 1.
Niebezpieczeństwo
Jeśli ponownie wykorzystasz plik przykładowy, będziesz musiał zmienić wszystkie następujące wyróżnione wartości odpowiednio do swojego środowiska:
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 | |
Dodatkowe konfiguracje dla patronictl¶
Aby umożliwić korzystanie z poleceń zarządzania clusterem PostgreSQL za pomocą patronictl, trzeba jeszcze wykonać na węźle PostgreSQL kilka poleceń jako root:
1 2 3 4 | |
Dodatkowe konfiguracje dla etcd¶
Aby włączyć automatyczną kompaktację i defragmentację bazy danych etcd, uruchom następujące polecenia jako root na węźle PostgreSQL:
1 2 3 4 5 6 7 | |
Tworzenie bazy danych default wymaganej do instalacji CyberElements Bastion¶
Podczas instalacji CyberElements Bastion musisz najpierw utworzyć bazę danych o nazwie default.
Aby to zrobić, wypełnij poniższą tabelę, dostosowując polecenie, które będziesz musiał wykonać z dowolnego jednego węzła clustera PostgreSQL:
| Wartość | Zmienna | Definicja |
|---|---|---|
PSQL_VIP |
Wirtualny adres IP clustera PostgreSQL. | |
DB_USER |
Nazwa użytkownika bazy danych podana podczas konfiguracji węzła PostgreSQL |
Polecenie do wykonania z dowolnego z węzłów clustera PostgreSQL:
1 | |