Webapp-Mechanismus (Phase 2): neue Rolle webapp-shortcuts

Kundeneigene URLs (workspace_webapps, siehe admin/provisioning-server)
werden als .desktop-Menueintrag (/usr/share/applications) UND
best-effort als Desktop-Icon ausgeliefert - kein present/absent pro
Eintrag wie sonst im Katalog, sondern ein echter ABGLEICH: die Rolle
bekommt bei jedem Lauf die komplette aktuelle Liste und sorgt dafuer,
dass GENAU diese Eintraege existieren (Datei-Identifikation ueber die
stabile DB-UUID, keine Namens-Slugifizierung noetig). Laeuft deshalb
IMMER (site.yml-Play-Var tuxflotte_webapps, agent.py haengt sie immer
in --tags ein, siehe admin/provisioning-agent), nicht nur bei
Aenderungen.

Desktop-Icon-Ablage bewusst pragmatisch: /etc/skel/Desktop (kuenftige
Nutzer) + bestehende /home/*/Desktop-Ordner, falls schon vorhanden -
kein erzwungenes Anlegen. Haengt an der noch offenen ADR-0026
(kein final festgelegter primaerer interaktiver Nutzer-Account) - deckt
ab, was heute real existiert (z.B. den 'gast'-Account aus
guest-session), ohne auf die endgueltige Klaerung zu warten.

ECHT END-ZU-ENDE GETESTET (nicht nur Syntax-Check): echter
ansible-playbook-Lauf gegen localhost mit Mock-Daten - Anlegen
(mit+ohne Favicon), Aktualisieren, vollstaendiges Entfernen bei leerer
Liste, Idempotenz. Favicon-Download-Pfad mit echter URL verifiziert.
ansible-core dafuer neu installiert (vorher nicht vorhanden).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VLk93dhDMrkPXefVdknMV9
This commit is contained in:
adminandClaude Sonnet 5 committed 2026-09-09 14:59:09 +02:00
1 parent 0f452c44ec
commit e4edcf1011
4 files changed
+169

No files matched your search

+13
View File
@@ -11,6 +11,11 @@
# z.B. {"standardbrowser": true} bei brave. Rein additiv, opak für den
# Server/Agenten - nur die jeweilige Rolle kennt die Bedeutung.
tuxflotte_auftrag_optionen: {}
# Vom Agenten per --extra-vars gesetzt (Check-in-Response "webapps",
# Phase 2 09.09.2026): Liste kundeneigener {id, name, url, icon_url}-
# Einträge, verarbeitet ausschließlich von der webapp-shortcuts-Rolle
# (siehe dort) - kein present/absent-Merkmal wie der Rest dieser Datei.
tuxflotte_webapps: []
tasks:
- include_role:
name: guest-session
@@ -362,3 +367,11 @@
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('turbowarp', 'present') }}"
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('turbowarp', {}) }}"
tags: turbowarp
- include_role:
name: webapp-shortcuts
apply:
tags: webapp-shortcuts
vars:
tuxflotte_webapps: "{{ tuxflotte_webapps }}"
tags: webapp-shortcuts