4.2. Instalace
Aplikaci Elza je možné nainstalovat dvěma způsoby:
Instalačními skripty (doporučeno pro Linux) - sada skriptů, která nainstaluje Elzu jako službu systemd a automatizuje nasazování nových verzí, zálohování databáze, kontrolu stavu a bezobslužné aktualizace.
Ručně z binární distribuce, v Linuxu nebo ve Windows.
Oba způsoby používají stejnou binární distribuci a stejný konfigurační soubor.
4.2.1. Instalace pomocí instalačních skriptů
Skripty a jejich dokumentace jsou publikovány na adrese
https://get.lightcomp.com/elza/ (v angličtině). Vyžadují Linux se systemd,
PostgreSQL včetně klientských nástrojů (pg_dump), bash a
curl. Instalace se spouští příkazem:
curl -fsSL https://get.lightcomp.com/elza/elza-bootstrap.sh | bash -s -- --home /opt/elza
Bootstrap skript stáhne balík skriptů (ověřený kontrolním součtem) do
adresáře /opt/elza/scripts, připraví konfigurační soubor
elza-env a nainstaluje jednotky systemd. Po úpravě
elza-env (minimálně připojení k databázi) se první nasazení
provede příkazem elza-deploy.
Skripty poskytují tyto příkazy:
elza-deploy- instalace nebo aktualizace aplikace: zastaví službu, zazálohuje databázi, stáhne distribuci, atomicky přepne na novou verzi, spustí službu a ověří, že běží.elza-backup- záloha databáze pomocípg_dumps mazáním starých záloh.elza-health- kontrola stavu aplikace a volitelné hlášení stavu dohledovému systému (viz Hlášení stavu dohledovému systému).elza-update- bezobslužná aktualizace na novou verzi.
Databázi je i v tomto případě nutné připravit podle
Příprava databáze. Konfigurace vlastní aplikace
(elza.yaml) je popsána v kapitole Konfigurace aplikace.
4.2.2. Ruční instalace
Obsah distribuce
Binární distribuce je soubor ZIP, který obsahuje:
server/elza-tomcat-<verze>.jar- aplikaci s vloženým webovým serverem,server/config/elza.yaml- vzorovou konfiguraci,server/config/csc-metrics.json- seznam metrik předávaných dohledovému systému (viz Monitorování),packages/- základní balíčky:package-cz-base(číselníky) arules-cz-zp2015(pravidla popisu ZP2015),data/all-institutions-import.xml- seznam akreditovaných archivů v České republice,readme.txt- stručný přehled instalace.
Příprava databáze
Vytvořte pro Elzu databázového uživatele, například
elza. Pro přístup aplikace nepoužívejte účet superuživatele.Vytvořte prázdnou databázi, jejímž vlastníkem je tento uživatel:
createdb -O elza -E UTF8 -l cs_CZ.UTF-8 -T template0 elza
Locale určuje řazení textů prováděné databází. Použijte locale archivního popisu (pro české archivy češtinu); dostupná locale vypíše příkaz
locale -a. Ve Windows je název napříkladCzech_Czechia.1250. Locale nelze po vytvoření databáze změnit.Povolte v databázi rozšíření PostGIS. Vytvoření rozšíření vyžaduje práva superuživatele, proveďte je proto jako uživatel
postgres:psql -U postgres -d elza -c "CREATE EXTENSION postgis;"
Tabulky vytvoří Elza při prvním spuštění.
Struktura adresářů
Elza potřebuje instalační a pracovní adresář, například:
/opt/elza/server- soubor JAR aconfig/elza.yaml,/opt/elza/work- pracovní adresář.
Ve Windows například D:\Elza\server a D:\Elza\work.
Pro službu vytvořte samostatného uživatele operačního systému, který je
vlastníkem pracovního adresáře a má k němu plná práva. V Linuxu je vhodné
odkazovat na aktuální JAR symbolickým linkem, aby aktualizace změnila jen
link: /opt/elza/server/elza-tomcat.jar ->
elza-tomcat-3.4.7.jar.
Pracovní adresář obsahuje:
dms/- binární soubory (přílohy, výstupy, publikace, importní dávky). Jeho strukturu spravuje Elza a nesmí se ručně upravovat; zálohuje se společně s databází (viz Zálohování a obnova).dpkg/- balíčky načítané při startu (viz Nahrání balíčků).log/- logy, pokud jsou nastaveny jako ve vzorové konfiguraci.další pracovní data, která si Elza v případě potřeby znovu vytvoří.
Konfigurace
Zkopírujte server/config/elza.yaml do config/elza.yaml
vedle souboru JAR a nastavte minimálně:
připojení k databázi (
elza.data.url,elza.data.user,elza.data.pass),pracovní adresář (
elza.workingDir),balíčky, které instalace používá (
elza.packages.enabled, viz Nahrání balíčků).
elza:
data:
url: jdbc:postgresql://localhost/elza
user: elza
pass: tajne
workingDir: /opt/elza/work
logFile: ${elza.workingDir}/log/elza.log
siemLogFile: ${elza.workingDir}/log/siem.log
packages:
enabled: [CZ_BASE, ZP2015]
Ostatní nastavení popisuje kapitola Konfigurace aplikace.
Spuštění jako služby
Před nastavením služby aplikaci jednou spusťte z instalačního adresáře a ověřte konfiguraci:
java -jar elza-tomcat.jar
Při prvním spuštění Elza vytvoří databázové schéma. Aplikace je připravena, jakmile log oznámí její spuštění; naslouchá na portu 8080.
Příklad jednotky systemd (/etc/systemd/system/elza.service):
[Unit]
Description=ELZA
After=network.target postgresql.service
[Service]
User=elza
WorkingDirectory=/opt/elza/server
ExecStart=/usr/bin/java -Xmx4g -Dfile.encoding=UTF-8 -jar /opt/elza/server/elza-tomcat.jar
SuccessExitStatus=143
Restart=on-failure
[Install]
WantedBy=multi-user.target
Velikost paměti (-Xmx) upravte podle dostupné paměti. Pracovním
adresářem procesu musí být instalační adresář, aby byl nalezen soubor
config/elza.yaml. Službu povolíte a spustíte příkazem
systemctl enable --now elza. S Restart=on-failure funguje restart
z administrace bez dalšího nastavení: aplikace skončí s návratovým kódem 3,
po kterém ji jednotka spustí znovu (viz Konfigurace aplikace).
Ve Windows lze Elzu provozovat jako službu pomocí nástroje jako WinSW nebo
NSSM, který spouští stejný příkaz java -jar. Viz také dokumentace
Spring Boot k nasazení.
4.2.3. První spuštění
První administrátor
Dokud databáze neobsahuje žádného uživatele, zobrazí aplikace místo přihlášení dialog Úvodní nastavení. Ten založí prvního administrátora: uživatele s heslem a oprávněním administrátora.
Varování
Dokud první administrátor neexistuje, může jej založit kdokoli, kdo aplikaci otevře. Založte administrátora hned po prvním spuštění, ještě než aplikaci zpřístupníte v síti, nebo jej nastavte v konfiguraci (viz Uživatelé z konfigurace).
Po stisku Vytvořit administrátora se aplikace přihlásí jako nový administrátor. Heslo musí splňovat pravidla pro hesla (viz Autentizace a zabezpečení); po instalaci jsou všechna pravidla vypnutá.
První administrátor nemá přiřazenou osobu (archivní entitu), protože archivní entity vyžadují nejprve nahrané balíčky. Osobu lze přiřadit později v Administrace > Uživatelé > Upravit. Další uživatelé se zakládají obvyklým způsobem, s osobou.
Uživatelé z konfigurace
Uživatele lze nastavit také v konfiguraci, jako seznam uživatelských jmen
a hesel v elza.security.override. Elza seznam uplatní při každém
startu bez ohledu na to, zda databáze uživatele obsahuje:
Pokud uživatel tohoto jména neexistuje, založí se jako administrátor: uživatel bez osoby, s oprávněním administrátora a bez hesla v databázi. Na prázdné databázi se pak dialog Úvodní nastavení nezobrazí.
Pokud uživatel existuje, jeho heslo ani oprávnění v databázi se nemění; deaktivovaný uživatel se aktivuje.
Uvedený uživatel se přihlásí svým vlastním heslem (z databáze, pokud jej má) nebo heslem z konfigurace; stačí kterékoli z nich. Přihlášení heslem z konfigurace nevyžaduje změnu hesla a heslo z konfigurace neexpiruje. Uživatel si může heslo v aplikaci změnit; heslo z konfigurace platí dál, dokud je uživatel v seznamu uveden. Po odebrání uživatele ze seznamu platí jen jeho vlastní heslo - uživatel založený ze seznamu, který si heslo nikdy nenastavil, se nepřihlásí, dokud mu je nenastaví administrátor. Heslo z konfigurace nikdy neplatí pro výchozího uživatele.
elza:
security:
override:
- username: jan.novak
password: nejake-heslo
- username: petr.svoboda
password: jine-heslo
Klíč |
Výchozí hodnota |
Význam |
|---|---|---|
|
(nenastaveno) |
Uživatelské jméno. |
|
(nenastaveno) |
Heslo jako prostý text. Neukládá se do databáze; heslo, které nesplňuje pravidla pro hesla, se jen ohlásí varováním v logu aplikace. |
Položka bez uživatelského jména nebo hesla, uživatel uvedený dvakrát nebo
odstraněné klíče elza.security.admin.username / .password zastaví
start s chybou. Pokud jednoho uživatele nelze uplatnit (například jeho
jméno je jménem výchozího uživatele a výchozí uživatel je zapnutý), Elza
zapíše chybu do logu, uplatní ostatní a nastartuje.
Každý start zapíše do logu aplikace varování pro každého uvedeného
uživatele (samotné heslo se nikdy nezapisuje). Při nastaveném
elza.siemLogFile zaznamená bezpečnostní auditní log, že je heslo
z konfigurace aktivní (override_active), založení nebo aktivaci
uživatele, chybu a každé přihlášení heslem z konfigurace
(authentication_type OVERRIDE); viz Autentizace a zabezpečení.
Varování
Heslo je uloženo jako prostý text a platí vedle vlastního hesla
uživatele. Jakmile položku nepotřebujete, například po prvním startu,
odstraňte ji z elza.yaml.
Výchozí uživatel
Nová instalace je přístupná také pod vestavěným výchozím uživatelem
(admin s heslem admin), který má oprávnění administrátora;
tlačítko Přihlásit dialogu Úvodní nastavení pro něj otevře
přihlašovací formulář. Použijte jej jen k vytvoření účtů administrátorů,
poté jej vypněte volbou elza.security.allowDefaultUser: false
a aplikaci restartujte. Dokud je výchozí uživatel zapnutý, nemůže se první
administrátor jmenovat admin. Viz Autentizace a zabezpečení.
Nahrání balíčků
Elza potřebuje číselníky a pravidla popisu z balíčků v adresáři
packages/. Doporučeným způsobem je zkopírovat soubory ZIP do
podadresáře dpkg/ pracovního adresáře: při každém startu Elza
nahraje z tohoto adresáře každý balíček, jehož verze je vyšší než verze
již nahraného balíčku. Aktualizace pak jen nahradí soubory v dpkg/
spolu se souborem JAR.
Které balíčky adresáře instalace používá, určuje elza.packages.enabled,
seznam kódů balíčků. Při každém startu Elza nahraje z dpkg/ balíčky,
které jsou již naimportované, a balíčky uvedené v seznamu, spolu s balíčky,
na kterých závisejí; ostatní soubory adresáře ponechá beze změny. Balíček,
který nová verze Elzy přidá do packages/, se proto do existující
instalace nenaimportuje, pokud není v seznamu uveden. Distribuce obsahuje:
CZ_BASE- popis entit podle českého CAM a sdílené číselníky; vyžaduje jejZP2015,ZP2015- česká pravidla popisu,ISAAR_CPF- popis entit podle mezinárodního standardu ISAAR(CPF), v angličtině; pro instalace mimo českou praxi nebo vedleCZ_BASE,ISADG- archivní popis souborů podle mezinárodního standardu ISAD(G), v angličtině; pro původce a přístupová místa potřebujeISAAR_CPF. Viz uživatelská příručka.
Klíč nastavte před prvním startem. Na prázdné databázi bez klíče Elza naimportuje všechny balíčky adresáře. Log startu uvádí naimportované a přeskočené balíčky.
Poznámka
Pokud dpkg/ obsahuje starší verzi balíčku, než je verze již
nahraná, aplikace nenastartuje. Starý soubor odstraňte.
Administrace > Správa balíčků (viz Správa balíčků) uvádí
balíčky z dpkg/, které nejsou nahrané, a co s každým z nich udělá
příští start. Načíst při příštím startu balíček označí: značkou je
záznam balíčku bez obsahu a příští start soubor naimportuje (s balíčky,
které vyžaduje). Zrušit označení značku odstraní. Stránka pak připomene,
že je potřeba restart, a nabídne Restartovat aplikaci: aplikace skončí
s návratovým kódem elza.restart.exitCode (výchozí 3) a správce služeb
ji spustí znovu; bez správce služeb se jen zastaví (viz
Konfigurace aplikace).
Balíčky tam lze také přímo naimportovat; naimportovaný balíček se pak
aktualizuje z dpkg/ jako ostatní a vyhledávací index zaregistruje
pole jeho nových typů prvků po restartu. Balíček tam smazaný zůstane při
příštím startu smazaný, pokud jej klíč neuvádí.
Import institucí
Seznam archivů naimportujte ze souboru
data/all-institutions-import.xml volbou Import rejstříkových
hesel v modulu Archivní entity.
Další kroky
Nastavení reverzní proxy a HTTPS: Provoz za reverzní proxy.
Nastavení zálohování: Zálohování a obnova.
Napojení monitorování: Monitorování.
Nastavení autentizace (LDAP, Kerberos, …): Autentizace a zabezpečení.