Instrukcja instalacji systemu PASK

Struktura oraz podział używanych serwisów

 

System podzielony jest między dwa środowiska znajdujące się na osobnych serwerach

  • Main:

    • PASK-SERVICES - autorskie serwisy UNITEAM,

    • PASK-TOOLS - serwisy potrzebne do obsługi systemu.

  • Utils:

    • PASK-UTILS - baza danych oraz serwisy agregujące dane potrzebne do działania systemu.

Graficzne przedstawienie maszyn i ich zawartości

 

Minimalne wymagania systemowe oraz przygotowanie środowisk

Aby system działał poprawnie należy przygotować środowiska wg poniższych informacji.

Serwer main

Nazwa

Wartość

Nazwa

Wartość

CPU

4 vcore

RAM

16 GB

HDD

50 GB

OS

Ubuntu server 20.04 LTS (lub nowszy)

IP

IPv4

Serwer utils

Nazwa

Wartość

Nazwa

Wartość

CPU

4 vcore

RAM

8 GB

HDD

50 GB

OS

Ubuntu server 20.04 LTS (lub nowszy)

IP

IPv4

  1. Stworzyć serwery wg powyższych tabeli.

  2. Na obu serwerach stworzyć użytkownika z uprawnieniami root, lub posiadać dostęp do użytkownika systemowego root.

  3. Udrożnić połączenie między serwerami tak aby można było swobodnie przesyłać dane między serwerami.

  4. Utworzyć rekord DNS (lokalny np. pask.domena.local lub globalny np. pask.domena.pl) i skierować go na adres ip serwera “main”.

  5. Upewnić się że serwery mogą pobrać dane z sieci WAN.

  6. Stworzyć certyfikat SSL (w postaci certificate.crt oraz privkey.key) tożsame z nadaną nazwą domenową.

  7. Jeśli istnieje potrzeba integracji z AD stworzyć użytkownika w domenie z uprawnieniami read-only.

  8. Zainstalować wymagane zależności na obu serwerach (kod poniżej) oraz utworzyć wymagane foldery:

    1. Wymagane zależności,

      • docker engine,

      • docker compose,

      • apt-transport-https,

      • ca-certificates,

      • curl,

      • software-properties-common,

      • python3-pip,

      • virtualenv,

      • python3-setuptools,

      • cloud-guest-utils,

      • jq,
        Kod do instalujący wymagane zależności i tworzący foldery z odpowiednimi uprawnieniami (zalecane uruchomienie z uprawnieniami root):

        apt-get update && apt-get upgrade -y apt-get install -y docker.io apt-transport-https ca-certificates curl software-properties-common python3-pip virtualenv python3-setuptools cloud-guest-utils jq systemctl start docker systemctl enable docker docker --version curl -L "https://github.com/docker/compose/releases/download/1.29.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose chmod +x /usr/local/bin/docker-compose docker-compose -version cd /opt mkdir pask pask/data chmod 777 pask/data mkdir composer cd composer
    2. Układ folderów:

      /opt/ ├── composer ├── lost+found └── pask └── data
  9. Pozostając w folderze /opt/composer na obu serwerach pobieramy kod aplikacji z repozytorium (dostęp do repozytorium lub jego zawartość przesłane zostaną inną formą komunikacji):

  • W przypadku gdy chcemy pobrać najnowszą wersję wpisujemy:
    git clone git@bitbucket.org:uniteampl/iamu-composer.git

  • W przypadku potrzeby pobrania specyficznej wersji wpisujemy:
    git clone -b <nazwa_brancha> git@bitbucket.org:uniteampl/iamu-composer.git
    np. git clone -b release/1.4.0 git@bitbucket.org:uniteampl/iamu-composer.git

Po sklonowaniu gdy wejdziemy w pobrany folder iamu-composer zobaczymy zawartość  w postaci : 

Zawartość repozytorium PASK

 

Konfiguracja

Konfiguracja polega na edycji dwóch plików, jeden ze zmiennymi systemowymi drugi z konfiguracją serwera proxy.

UWAGA! Poniższe kroki należy wykonać na obu serwerach w dokładnym odwzorowaniu, tak aby po skończonej konfiguracji na obu serwerach znajdowały się dokładnie takie same konfiguracje .env oraz nginx.conf.

1. Edycja pliku ze zmiennymi systemowymi “.env”

Plik “.env” znajdziemy w głównym folderze repozytorium. Zawiera on wiele istotnych zmiennych potrzebnych do poprawnego skonfigurowania i uruchomienia systemu. Z racji na ilość danych zmienne zostały zawarte w tabeli poniżej wraz z opisami i danymi. Plik należy dopasować do swoich potrzeb i środowiska.

Plik zawiera konfigurowalne elementy zawarte poniżej, pozostałe elementy należy zostawić niezmienione:

Zmienna

Domyślna wartość

Opis

Konfiguracja

Zmienna

Domyślna wartość

Opis

Konfiguracja

URL

localhost

Adres na którym jest wystawiony pask podmienić na nazwę domenową

obowiązkowe

PROFILE

docker

Domyślny profil dla aplikacji z jakim ma być uruchomiona.

prod- uruchomimy czyste środowisko bez danych testowych
docker - uruchomimy środowisko wraz z danymi testowymi

obowiązkowe

CRT_DIR

./proxy/nginx-selfsigned.crt

Lokalizacja certyfikatu ssl, domyślny (generuje ostrzeżenie przy ładowaniu strony logowania) zalecana podmiana

opcjonalne

KEY_DIR

./proxy/nginx-selfsigned.key

Lokalizacja klucza certyfikatu ssl, domyślny (generuje ostrzeżenie przy ładowaniu strony logowania) zalecana podmiana

opcjonalne

POSTGRES_HOST

db-service

Host bazy danych podmienić na adres ip serwra utils

obowiązkowe

POSTGRES_PASSWORD

iamu_password

Hasło użytkownika bazy danych podmienić na silne hasło

obowiązkowe

MAIL_SMTP_HOST

smtp

Adres serwera smtp do wysyłki maili przez system podmienić na adres serwera mailowego do wysyłki maili przez system

obowiązkowe

MAIL_SMTP_PORT

1025

Port serwera smtp do wysyłki maili przez system podmienić na port serwera mailowego do wysyłki maili przez system

obowiązkowe

MAIL_SMTP_USER

-

Login użytkownika serwera pocztowego podmienić na login własnego użytkownika

obowiązkowe

MAIL_SMTP_PASS

pass**

Hasło użytkownika serwera pocztowego podmienić na hasło własnego użytkownika

obowiązkowe

MAIL_SMTP_AUTH

'true'

Zmienna definiująca czy wymagana jest autoryzacja loginem i hasłem zależne od konfiguracji serwera pocztowego

opcjonalne

MAIL_SMTP_STARTTLS

'true'

Zmienna definiująca czy wymagane jest szyfrowanie STARTTLS zależne od konfiguracji serwera pocztowego

opcjonalne

MAIL_FROM

info@pask.id

Zmienna definiująca pole “nadawca” zawarte w wysyłanych wiadomościach e-mail

opcjonalne

LDAP_ORGANISATION

"pask"

Nazwa organizacji w LDAP zalecana podmiana na własną nazwę organizacji

opcjonalne

LDAP_DOMAIN

"pask.id"

Nazwa domeny w LDAP zalecana podmiana na własną domenę

opcjonalne

LDAP_ADMIN_PASSWORD

"some-ldap-password"

Hasło administratora LDAP zalecana podmiana na silne hasło

opcjonalne

LDAP_IP

ldap

Host serwisu Ldap podmienić na adres ip serwera utils

opcjonalne

GRAYLOG_HOST

127.0.0.1

Host serwisu Graylog podmienić na adres ip serwera utils

obowiązkowe

INTERNAL_GRAYLOG_HOST

graylog

Host serwisu Graylog podmienić na adres ip serwera util

obowiązkowe

GRAYLOG_PASSWORD_SECRET

somepasswordpepper

Hasło dostępowe serwisu Graylog zalecana podmiana na silne hasło

opcjonalne

2. Edycja pliku z konfiguracją serwera proxy

W folderze /opt/composer/iamu-composer/proxy w pliku nginix.conf zawarta jest konfiguracja proxy.

Należy podmienić na adres IP serwera “utils” wszystkie adresy odwołujące się do utils w definicji proxy_pass w poniższych klamrach location:

  • location /graylog,

  • location /db,

  • location /kafka,

  • location /ldap/,

  • location /ssp/.

Uruchomienie

Aby uruchomić PASK potrzebujemy najpierw wejść na maszynę z “utils”, wchodzimy do folderu gdzie umieściliśmy folder z sklonowanym systemem PASK i wykonujemy komendę:

docker-compose -f utils-compose.yml -f prod-utils.yml --env-file .env  up -d

by zweryfikować poprawność działania serwisów możemy wykonać komendę:

docker-compose -f utils-compose.yml -f prod-utils.yml ps

UWAGA! Poprawne działanie oznacza że kontenery posiadają status healthy a nie starting.

 

Następnie wchodzimy na maszynę “main”, wchodzimy do folderu gdzie umieściliśmy folder z sklonowanym systemem PASK i wykonujemy komendę :

docker-compose -f main-compose.yml -f prod-main.yml --env-file .env  up -d

by zweryfikować poprawność działania serwisów możemy wykonać komendę:

docker-compose -f main-compose.yml -f prod-main.yml ps

UWAGA! Poprawne działanie oznacza że kontenery posiadają status healthy a nie starting.

 

Ostatnim krokiem jest wykonanie dwóch metod z ciałem:

  1. Należy podmienić pask.domena.pl na nazwę domenową z przygotowania środowiska.
    Metodę skierować na adres poniżej.

    1. adres:

      http://pask.domena.pl:8301/init-auth-server

       

    2. metoda:

    3. Następnie należy poczekać na poprawną odpowiedź zwrotną

  2. Należy podmienić pask.domena.pl na nazwę domenową z przygotowania środowiska, wartości email oraz login pozostawić bez zmian natomiast password zastąpić silnym hasłem.
    Metodę skierować na adres poniżej.

    1. adres:

    2. metoda:

    3. Następnie należy poczekać na poprawną odpowiedź zwrotną.

Logowanie

Po poprawnej instalacji wchodzimy na wybrany przez nas przy konfiguracji adres dla PASK i zostajemy przekierowani automatycznie do panelu logowania. 
Gratulacje instalacja została zakończona sukcesem.

 

Porady:

Sugerujemy aby katalog który podpinamy do bazy danych był osobna macierzą albo by posiadał wysoka dostępność.

PASK 2021