V rámci testování produkčního nasazení MultiFlexi ekosystému proběhly práce na Ansible roli multiflexi_server.
Ověření produkčního repozitáře
Bylo ověřeno, že repo.multiflexi.eu (kanál stable) obsahuje všechny potřebné balíčky pro Debian trixie (aarch64): multiflexi-web5, multiflexi-cli, multiflexi-migrations, multiflexi-sqlite, multiflexi-scheduler, multiflexi-executor.
Testovací nasazení na monomakh
Ansible role multiflexi_server byla úspěšně spuštěna na monomakh.vitexsoftware.brevnov.czf (Debian 13 trixie, aarch64, PHP 8.4). Role je produkčně připravená — opakované spuštění dává changed=0.
Nová funkce: Exkluzivní hostitelský režim
Commit cd4a356 — přidána nová volitelná proměnná multiflexi_server_exclusive_host (výchozí false).
Při nastavení true role automaticky:
- nasadí VirtualHost s
DocumentRoot /usr/share/multiflexi-web - aktivuje nový vhost (
a2ensite multiflexi) - deaktivuje původní alias konfig balíčku (
a2disconf multiflexi) - deaktivuje výchozí Apache vhost (
a2dissite 000-default) - restartuje Apache
Výsledek: MultiFlexi je dostupné na / a /api/ místo /multiflexi/ a /multiflexi/api/.
Řešený problém: Původní šablona aktivovala open_basedir přes <IfModule mod_php.c>, což blokovalo přístup k /usr/share/multiflexi-executor/ a způsobovalo HTTP 500. Opraveno odstraněním celého PHP bloku — libapache2-mod-php PHP zpracovává globálně.
Nová funkce: Vytvoření prvního administrátorského účtu
Commit abfde19 — přidána volitelná tvorba admin uživatele přes multiflexi-cli.
| Proměnná | Výchozí | Popis |
|---|---|---|
multiflexi_initial_admin_login | "" | Login admina; prázdné = funkce vypnutá |
multiflexi_initial_admin_email | "" | Email; prázdné = admin@<fqdn> |
multiflexi_initial_admin_password | "" | Heslo; prázdné = vygeneruje se náhodné |
multiflexi_initial_admin_firstname | "Admin" | Jméno |
multiflexi_initial_admin_lastname | "" | Příjmení |
Chování: Idempotentní — spouští se pouze pokud neexistuje žádný aktivní uživatel. Heslo se nikdy nezapisuje do logů (no_log: true). Vygenerované přihlašovací údaje se vytisknou na konci playbooku. Ověřeno živě na monomakh: uživatel vytvořen, přihlášení vrátilo HTTP 200, druhé spuštění changed=0.
Dokumentace
README role aktualizováno o popis obou nových funkcí včetně příkladových playbooků.
Změněné soubory
roles/multiflexi_server/defaults/main.yml— +6 nových proměnnýchroles/multiflexi_server/tasks/main.yml— +2 include_tasks blokyroles/multiflexi_server/tasks/exclusive.yml— NOVÝroles/multiflexi_server/tasks/admin.yml— NOVÝroles/multiflexi_server/templates/multiflexi-exclusive-vhost.conf.j2— NOVÝroles/multiflexi_server/README.md— aktualizovaná dokumentacetests/monomakh_stable.yml— NOVÝ testovací playbooktests/inventory_monomakh— NOVÝ inventář