Przygotowanie PostgreSQL10 do migracji bazy vCloud Directora z MSSQL

Ostatnio pisałem o procesie aktualizacji produktu vCloud Director 9.5. Idąc dalej jako właściciele nowiutkiego produktu mamy opcje jeśli nadal tego jeszcze nie zrobiliśmy zmigrowania się do wspieranej bazy danych jaką jest PostgreSQL. Jednocześnie mamy przez to możliwość zejścia z kosztów licencji za Microsoft SQL server jeśli jest to jedyna baza jaką utrzymujemy. Zanim to jednak zrobimy serwer taki należy przygotować. Tak zrobiłem to ja. Prawdopodobnie nie jest to najbardziej optymalna konfiguracja, ale na czas na jaki potrzebowałem tą bazę było to wystarczająco.

 


Etap Przygotowań:

  • Określenie adresu IP serwera
  • Określenie nazwy DNSowej serwera

Instalacja i Konfiguracja serwera pod PostgreSQL

ETAP 1: Maszyna oraz instalacja bazy

  • Stworzenie maszyny wirtualnej
  • Instalacja CentosOS 7 z ISO
  • Konfiguracja sieci z dostępem do internetu
  • Aktualizacja systemu poprzez komendy:

yum check-update
yum update
  • Dodanie repozytorium
yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
  • Instalacja i inicjalizacja bazy
yum install postgresql10-server
/usr/pgsql-10//bin/postgresql-10-setup initdb
  • Włączenie serwisu i konfiguracja autostartu
systemctl start postgresql-10 
systemctl enable postgresql-10 
  • Weryfikacje czy jest odpowiedni locale bazy dla vCD zgodnie z wytycznymi z linku (en_US.UTF-8)
su - postgres
psql -l 
  • Tworzymy użytkownika i przypisujemy mu hasło:
postgres=# create user vcloud; 
postgres=# alter user vcloud password 'TAJNEHASLO';
  • Tworzymy baze danych:
postgres=#  create database vcloud owner vcloud;
  • Weryfikujemy czy pojawiła się nowa baza danych:
postgres=# \l
  • Włączenie możliwości logowania do bazy przez “ownera”:
postgres=# alter role vcloud with login;
  • Nadanie pełnych uprawnień użytkownikowi vcloud do bazy vcloud:
postgres=# grant all privileges on database vcloud to vcloud;

 

ETAP 2: Dodatkowa konfiguracja:

  • Zezwolenie na połączenie do bazy z maszyny obok.

Więcej na temat sposobu autentykacji:  https://www.postgresql.org/docs/10/auth-pg-hba-conf.html

Edytujemy plik(w wersji 10 postgressa):

/var/lib/pgsql/10/data/pg_hba.conf

  • Konfiguracja na jakim interfejsie i porcie 5432 ma nasłuchiwać baza:

Status domyślny (localhost):

Otwieramy plik:

vi /var/lib/pgsql/10/data/postgresql.conf

Konfigurujemy ustawienia na :

listen_addresses = 'IPinterfejsu'

info: Podajemy adres IP maszyny wirtualnej gdzie jest zainstalowana baza postgres.

Nasłuchujący interfejs po modyfikacji i restarcie serwisu (systemctl restart postgresql-10):

 

  • Dodatkowe konfiguracje w tym samym pliku “vi /var/lib/pgsql/10/data/postgresql.conf”

Poniższe ustawienia zgodnie z: KBdoc1

 

  • Restart serwisu postgresa:
max_connections = 500
# Set effective cache size to 50% of total memory.
effective_cache_size = 8GB
# Set shared buffers to 25% of total memory
shared_buffers = 4GB

autovacuum = on
track_counts = on
autovacuum_max_workers = 3
autovacuum_naptime = 1min
autovacuum_vacuum_cost_limit = 2400

 

  • Restart serwisu postgresa:
systemctl restart postgresql-10

 

  • Konfiguracja NTP::
yum install ntp
vi /etc/ntp.conf

Dodajemy adres IP albo nazwe serwera NTP  np. X.X.2.10:

systemctl start ntpd
systemctl enable ntpd

 

  • Otwarcie ruchu na firewallu na porcie do komunikacji
firewall-cmd --permanent --zone=public --add-port=5432/tcp

Przeładowanie konfiguracji:
firewall-cmd --reload

Weryfikacja:
firewall-cmd --list-all

 

  • Weryfikacja poprawności połączenia z innej maszyny w tej samej sieci:

Sprawdzenie czy port jest osiągalny z zewnątrz:

curl -k -v adresIPmaszynyPostgreSQL:5432

Poniżej screen gdzie testowałem autentykacje z serwera obok z użytkownikiem i hasłem:

Zalogowanie się klientem postgreSQL (wymagana wcześniejsza instalacja na innym serwerze, ja zainstalowałem postgreSQLa10 nie uruchamiając samem bazy)

psql -h adresIPmaszynyPostgreSQL -U vcloud -W vcloud

 

 

Na tym etapie możemy skończyć podstawową konfigurację serwera, który będzie nam służyć jako zewnętrzna baza danych dla vCloud Directora 9.5. Kolejny wpis dotyczyć będzie już samem migracji bazy z MSSQL do PostgreSQL.

Masz jakieś uwagi ? widzisz błędy ? Wszyscy jesteśmy ludzmi i popełniamy błędy 🙂 daj znać poprzez komentarz, mail, telefon lub social media 🙂