Kein Flatpak verfügbar (Google vertreibt nur eigene .deb/.rpm-Pakete),
daher wie guest-session eine einzige Rolle mit interner
os_family-Verzweigung statt Flatpak-Installation. apt (Debian/Mint)
installiert direkt per deb-URL, dnf (Fedora) per rpm-URL.
Syntax-geprüft (ansible-playbook --syntax-check); die tatsächliche
Paketinstallation (Netzwerk, Abhängigkeitsauflösung) ist im Gegensatz
zu den bisherigen Flatpak-Rollen noch nicht auf echter Hardware
verifiziert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Neben OnlyOffice als zusätzliche Katalog-Option, distro-unabhängig
über Flatpak (org.libreoffice.LibreOffice), gleiches present/absent-
Muster wie die onlyoffice-Rolle.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fedora-Installer wurde zurückgestellt (Installationsprobleme), Fokus liegt
jetzt auf Mint, später weitere Distros. Beide Rollen sind über Flatpak
implementiert und damit schon jetzt distributionsunabhängig - die
"-fedora"-Benennung war irreführend. Konvention: kein Suffix = bewusst
distro-unabhängig (wie schon guest-session), "-mint"/"-fedora"-Suffix nur
für tatsächlich distro-spezifische Logik.
roles/brave-fedora -> roles/brave, roles/onlyoffice-fedora -> roles/onlyoffice,
Marker-Dateinamen und Task-Namen angepasst, site.yml und README aktualisiert.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ersetzt die reinen Marker-Datei-Platzhalter durch echte Anforderungen des
Schulcomputer-Workspace:
- guest-session: flüchtige Gastsitzung über lokalen gast-User +
pam_namespace-tmpfs-Polyinstantiation, nopasswdlogin-Login. PAM-Layout
wird über ansible_facts os_family erkannt (RedHat vs. Debian), da der
Rollenname für beide Backends geteilt wird.
- brave-fedora: Installation via Flatpak/Flathub, neue optionale
standardbrowser-Option (tuxflotte_optionen) setzt/entfernt den
System-Default in /etc/xdg/mimeapps.list, mit Firefox-Fallback.
- onlyoffice-fedora: Installation via Flatpak/Flathub.
site.yml reicht zusätzlich zu tuxflotte_auftrag_states auch
tuxflotte_auftrag_optionen pro Rolle durch.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a tuxflotte_state variable, threaded from a new
tuxflotte_auftrag_states dict in site.yml (role name -> present/absent,
populated by the agent from the checkin response's "auftraege" list,
see ADR-0010) down into each role via include_role vars. Roles not
present in that dict default to "present" via .get(), so today's
purely workspace-composed, additive-only behavior is unchanged.
Retrofits all three existing placeholder roles with the present/absent
branch as the reference implementation of the convention, and
documents it in the README for future catalog-eligible roles. This is
what makes deselecting an Auftrag actually revert something instead of
just stopping future re-application.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Tags on include_role only apply to the include statement itself, not
the role's inner tasks, unless passed via apply. Without this,
ansible-pull --tags <role> silently skipped every role task, so no
marker files were ever written during the QEMU agent test.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Ein Platzhalter je Merkmal aus der Schulcomputer-Bereitstellungsvorlage (guest-session, brave-fedora, onlyoffice-fedora), zum Beweis der ansible-pull-Pipeline des Provisioning Agent.