MultiFlexi Ansible role: nasazení z produkce, exkluzivní režim a první admin

CS

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ých
  • roles/multiflexi_server/tasks/main.yml — +2 include_tasks bloky
  • roles/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á dokumentace
  • tests/monomakh_stable.yml — NOVÝ testovací playbook
  • tests/inventory_monomakh — NOVÝ inventář
Back to articles