Keycloak
info
V případě, že jste nainstalovali PMC podle příručky Základní instalace PMC, je již datová pumpa v Keycloaku nainstalovaná a není třeba provádět instalaci manuálně.
Vytvoření tabulek v Keycloaku¶
V databázi Keycloaku je třeba spustit následující sql script
CREATE SEQUENCE pump_table_id_seq;
CREATE TABLE public.pump_table (
pump_table_id int8 DEFAULT nextval('pump_table_id_seq'::regclass) NOT NULL,
table_name varchar(512) NOT NULL,
last_update date NOT NULL,
column_name varchar(512) NOT NULL,
CONSTRAINT pump_table_pkey PRIMARY KEY (pump_table_id)
);
CREATE SEQUENCE pump_table_data_id_seq;
CREATE TABLE public.pump_table_data (
pump_table_data_id int8 DEFAULT nextval('pump_table_data_id_seq'::regclass) NOT NULL,
value_column int4 NULL,
value_pk varchar(128) NULL,
pump_table_id int8 NULL,
"row_number" int4 NULL,
value_column_confirmed int4 NULL,
CONSTRAINT pump_table_data_pkey PRIMARY KEY (pump_table_data_id)
);
Instalace ETL¶
ETL je možné nainstalovat dvěma způsoby. V dockeru a nebo jako službu.
Konfigurace keycloaku¶
- Na aplikaci KeyCloak je potřeba zapnout ukládání informací o přihlášení/odhlášení uživatele.
- Je třeba nastavit Event Config, ukládat události typu Login, Login_Error, Logout
- Na dané události nastavit exspiraci na 7 dnů.

Služba¶
-
V adresáři
/etc/systemd/systemvytvořit souboretl-pmc.service/etc/systemd/system/etl-pmc.service[Unit] Description=PMC data pump After=network.target [Service] Type=simple Restart=on-failure RestartSec=5s # (1)! User=pmc Group=pmc # (2)! WorkingDirectory=/opt/pmc/etl # (3)! ExecStart=java -jar pmc-etl.jar --spring.profiles.active=gctest # (4)! StandardOutput=append:/var/log/etl/etl-pmc.log StandardError=inherit ExecStop=/bin/kill "$MAINPID" [Install] WantedBy=multi-user.target- Zadat uživatele a skupinu, pod kterou bude proces spuštěn. Pozor, musí mít práva ke čtení souboru, který se spouští. Pokud chceme pro provoz ETL vytvořit nového uživatele, který bude sloužit pouze k tomuto účeu (doporučeno), můžeme to udělat příkazem useradd např.
useradd -m -d /var/lib/pmc pmc - Pracovní adresář služby
- Příkaz, který se spouští. Místo
pmc-etl.jarje třeba zadat název jaru a místogctestnázev profilu - Soubor, do kteŕeho se budou zapisovat logy. Nastavení
inheritznamená, že se do stejného souboru zapisuje jak stdout, tak stderr viz systemd.exec.
note
Po editaci tohoto souboru je třeba načíst novou konfiguraci příkazem
sudo systemctl daemon-reload - Zadat uživatele a skupinu, pod kterou bude proces spuštěn. Pozor, musí mít práva ke čtení souboru, který se spouští. Pokud chceme pro provoz ETL vytvořit nového uživatele, který bude sloužit pouze k tomuto účeu (doporučeno), můžeme to udělat příkazem useradd např.
-
Do adresáře
/opt/pmc/etlnakopírovat etl jar. - Nastavit automatické spuštění služby příkazem
sudo systemctl enable etl-pmc
info
Ovládání služby probíhá standardním spůsobem
sudo systemctl start etl-pmc # (1)!
sudo systemctl stop etl-pmc # (2)!
sudo systemctl restart etl-pmc # (3)!
sudo systemctl status etl-pmc # (4)!
- Start služby
- Zastavení služby
- Restart služby
- Vypsání informací o službě
Docker¶
-
Vytvořit soubor
/opt/pmc/etl/docker-compose.yml/opt/pmc/etl/docker-compose.ymlversion: '3.1' services: etl-pmc: image: docker.greencenter.site/etlpostgres:1.0 restart: always extra_hosts: - "pmc.local:host-gateway" # (1)! volumes: - './etl-pmc/application-docker-pmc.properties:/opt/etl/application-docker-pmc.properties' - './crt:/usr/local/share/ca-certificates/extra:ro' environment: TZ: Europe/Prague ETL_FLAGS: "--spring.profiles.active=docker-pmc -Duser.country=CZ -Duser.language=cs" logging: driver: 'journald' options: tag: 'etl-pmc'- Pod názvem pmc.local bude dostupný podkladový systém. To je důležité pro konfigurační soubor etl.
-
Do adresáře
/opt/pmc/etl/crtnahrát certifikát activemq - Vytvořit soubor
/opt/pmc/etl/etl-pmc/application-docker-pmc.properties. Viz Konfigurace datové pumpy. - Spustit kontejner