// LISTING 1.1. Instalacja silnika PostgreSQL i tworzenie bazy dla Jiry

// 1. Zalogowanie się do serwera wirtualnego przez klienta SSH lub bezpośrednio w konsoli VMware.

// 2. Przejście do dowolnej lub specjalnie utworzonej lokalizacji w katalogu użytkownika.
cd /home/<nazwa użytkownika>

// 3. Dodanie repozytorium PostgreSQL do listy źródeł zainstalowanego systemu Ubuntu Server.
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

// 4. Import klucza do repozytorium PostgreSQL.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

// 5. Instalacja PostgreSQL 14.
sudo apt-get -y install postgresql-14

// 6. Ustawienie nasłuchu dla połączeń zewnętrznych.
// Opcja może być uzależniona od polityki bezpieczeństwa w organizacji.

// Należy otworzyć plik z uprawnieniami administratora za pomocą dowolnego edytora.
sudo nano /etc/postgresql/14/main/postgresql.conf

// W edytorze należy usunąć znaki komentarza w poniższej linii i ją zmodyfikować.
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_address = '*'

// 7. Dodanie dozwolonych hostów do połączeń zewnętrznych.

// Należy otworzyć plik z uprawnieniami administratora za pomocą dowolnego edytora.
sudo nano /etc/postgresql/14/main/pg_hba.conf

// W edytorze należy określić dozwolone hosty, które mogą łączyć się z bazą.
// Opcja może być uzależniona od polityki bezpieczeństwa w organizacji.
// W poniższym przykładzie zezwolono na łączenie się ze wszystkich hostów.
# IPv4 local connections:
host    all    all    127.0.0.1/32    scram-sha-256
host    all    all    0/0    md5

// 8. Po zmianie konfiguracji należy zrestartować serwer PostgreSQL.
sudo /etc/init.d/postgresql restart

// 9. Po zainstalowaniu PostgreSQL został utworzony domyślny użytkownik postgresql,
// któremu należy nadać nowe hasło.
sudo passwd postgres

// 10. Utworzenie bazy danych.

// Przełączenie się na użytkownika postgres.
sudo -i -u postgres

// Włączenie konsoli PostgreSQL.
psql

// Utworzenie bazy danych o nazwie jiradb.
CREATE DATABASE jiradb WITH ENCODING 'UNICODE' LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0;

// Utworzenie użytkownika o nazwie jiradb z hasłem haselko.
CREATE USER jiradb WITH PASSWORD 'haselko';

// Nadanie użytkownikowi jiradb uprawnień do operacji w bazie danych jiradb.
GRANT ALL PRIVILEGES ON DATABASE jiradb TO jiradb;

// Wyjście z konsoli PostgreSQL.
exit

// Przełączenie użytkownika.
su <nazwa mojego użytkownika>

// Wykonanie restartu maszyny wirtualnej.
sudo reboot