.. Zdroj: elza/docs/admin-guide/source/02-installation.rst, elza e87a93d6d1 .. _admin_install: ========= 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. .. _admin_deployment_scripts: 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: .. code-block:: bash 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 :file:`/opt/elza/scripts`, připraví konfigurační soubor :file:`elza-env` a nainstaluje jednotky systemd. Po úpravě :file:`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_dump`` s mazáním starých záloh. - ``elza-health`` - kontrola stavu aplikace a volitelné hlášení stavu dohledovému systému (viz :ref:`admin_deployment_scripts_reporting`). - ``elza-update`` - bezobslužná aktualizace na novou verzi. Databázi je i v tomto případě nutné připravit podle :ref:`admin_install_db`. Konfigurace vlastní aplikace (:file:`elza.yaml`) je popsána v kapitole :doc:`04-konfigurace`. Ruční instalace =============== Obsah distribuce ---------------- Binární distribuce je soubor ZIP, který obsahuje: - :file:`server/elza-tomcat-.jar` - aplikaci s vloženým webovým serverem, - :file:`server/config/elza.yaml` - vzorovou konfiguraci, - :file:`server/config/csc-metrics.json` - seznam metrik předávaných dohledovému systému (viz :doc:`08-monitorovani`), - :file:`packages/` - základní balíčky: ``package-cz-base`` (číselníky) a ``rules-cz-zp2015`` (pravidla popisu ZP2015), - :file:`data/all-institutions-import.xml` - seznam akreditovaných archivů v České republice, - :file:`readme.txt` - stručný přehled instalace. .. _admin_install_db: 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: .. code-block:: bash 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říklad ``Czech_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``: .. code-block:: bash 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: - :file:`/opt/elza/server` - soubor JAR a :file:`config/elza.yaml`, - :file:`/opt/elza/work` - pracovní adresář. Ve Windows například :file:`D:\\Elza\\server` a :file:`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: :file:`/opt/elza/server/elza-tomcat.jar` -> :file:`elza-tomcat-3.4.7.jar`. Pracovní adresář obsahuje: - :file:`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 :doc:`09-zalohovani`). - :file:`dpkg/` - balíčky načítané při startu (viz :ref:`admin_install_dpkg`). - :file:`log/` - logy, pokud jsou nastaveny jako ve vzorové konfiguraci. - další pracovní data, která si Elza v případě potřeby znovu vytvoří. .. _Admin_InstallBinConf: Konfigurace ----------- Zkopírujte :file:`server/config/elza.yaml` do :file:`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``). .. code-block:: yaml 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 Ostatní nastavení popisuje kapitola :doc:`04-konfigurace`. 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: .. code-block:: bash 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 (:file:`/etc/systemd/system/elza.service`): .. code-block:: ini [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 :file:`config/elza.yaml`. Službu povolíte a spustíte příkazem ``systemctl enable --now elza``. 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í `_. První spuštění ============== Výchozí uživatel ---------------- Nová instalace je přístupná pod vestavěným výchozím uživatelem (``admin`` s heslem ``admin``), který má oprávnění administrátora. Použijte jej jen k vytvoření účtů administrátorů, poté jej vypněte volbou ``elza.security.allowDefaultUser: false`` a aplikaci restartujte. Viz :doc:`05-zabezpeceni`. .. _admin_install_dpkg: Nahrání balíčků --------------- Elza potřebuje číselníky a pravidla popisu z balíčků v adresáři :file:`packages/`. Doporučeným způsobem je zkopírovat soubory ZIP do podadresáře :file:`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 :file:`dpkg/` spolu se souborem JAR. .. note:: Pokud :file:`dpkg/` obsahuje starší verzi balíčku, než je verze již nahraná, aplikace nenastartuje. Starý soubor odstraňte. Balíčky lze nahrát také v modulu *Administrace* > *Správa balíčků* (viz :ref:`ug_admin_packet`). Import institucí ---------------- Seznam archivů naimportujte ze souboru :file:`data/all-institutions-import.xml` volbou *Import rejstříkových hesel* v modulu *Archivní entity*. Další kroky ----------- - Nastavení reverzní proxy a HTTPS: :doc:`06-reverzni-proxy`. - Nastavení zálohování: :doc:`09-zalohovani`. - Napojení monitorování: :doc:`08-monitorovani`. - Nastavení autentizace (LDAP, Kerberos, ...): :doc:`05-zabezpeceni`.