- hosts: localhost connection: local become: true vars: # Vom Agenten per --extra-vars gesetzt (siehe ADR-0010, provisioning-server # Check-in-Response "auftraege"): Rollenname -> "present"/"absent". Rollen, # die hier nicht auftauchen (z.B. weil sie nur workspace-komponiert sind), # bleiben beim Default "present" - unverändert additives Verhalten. tuxflotte_auftrag_states: {} # Rollenname -> optionen-Dict aus der Auswahl-API (device_merkmale.optionen), # 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 apply: tags: guest-session vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('guest-session', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('guest-session', {}) }}" tags: guest-session - include_role: name: brave apply: tags: brave vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('brave', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('brave', {}) }}" tags: brave - include_role: name: onlyoffice apply: tags: onlyoffice vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('onlyoffice', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('onlyoffice', {}) }}" tags: onlyoffice - include_role: name: libreoffice apply: tags: libreoffice vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('libreoffice', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('libreoffice', {}) }}" tags: libreoffice - include_role: name: google-earth apply: tags: google-earth vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('google-earth', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('google-earth', {}) }}" tags: google-earth - include_role: name: gimp apply: tags: gimp vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('gimp', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('gimp', {}) }}" tags: gimp - include_role: name: inkscape apply: tags: inkscape vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('inkscape', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('inkscape', {}) }}" tags: inkscape - include_role: name: scribus apply: tags: scribus vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('scribus', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('scribus', {}) }}" tags: scribus - include_role: name: librecad apply: tags: librecad vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('librecad', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('librecad', {}) }}" tags: librecad - include_role: name: audacity apply: tags: audacity vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('audacity', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('audacity', {}) }}" tags: audacity - include_role: name: musescore apply: tags: musescore vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('musescore', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('musescore', {}) }}" tags: musescore - include_role: name: metronome apply: tags: metronome vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('metronome', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('metronome', {}) }}" tags: metronome - include_role: name: minuet apply: tags: minuet vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('minuet', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('minuet', {}) }}" tags: minuet - include_role: name: stellarium apply: tags: stellarium vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('stellarium', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('stellarium', {}) }}" tags: stellarium - include_role: name: octave apply: tags: octave vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('octave', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('octave', {}) }}" tags: octave - include_role: name: kalgebra apply: tags: kalgebra vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kalgebra', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kalgebra', {}) }}" tags: kalgebra - include_role: name: kalzium apply: tags: kalzium vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kalzium', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kalzium', {}) }}" tags: kalzium - include_role: name: kbruch apply: tags: kbruch vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kbruch', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kbruch', {}) }}" tags: kbruch - include_role: name: step apply: tags: step vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('step', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('step', {}) }}" tags: step - include_role: name: tuxmath apply: tags: tuxmath vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('tuxmath', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('tuxmath', {}) }}" tags: tuxmath - include_role: name: filius apply: tags: filius vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('filius', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('filius', {}) }}" tags: filius - include_role: name: gcompris apply: tags: gcompris vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('gcompris', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('gcompris', {}) }}" tags: gcompris - include_role: name: ktouch apply: tags: ktouch vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('ktouch', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('ktouch', {}) }}" tags: ktouch - include_role: name: kwordquiz apply: tags: kwordquiz vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kwordquiz', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kwordquiz', {}) }}" tags: kwordquiz - include_role: name: kanagram apply: tags: kanagram vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kanagram', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kanagram', {}) }}" tags: kanagram - include_role: name: tuxtype apply: tags: tuxtype vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('tuxtype', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('tuxtype', {}) }}" tags: tuxtype - include_role: name: foliate apply: tags: foliate vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('foliate', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('foliate', {}) }}" tags: foliate - include_role: name: evolution apply: tags: evolution vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('evolution', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('evolution', {}) }}" tags: evolution - include_role: name: kturtle apply: tags: kturtle vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kturtle', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kturtle', {}) }}" tags: kturtle - include_role: name: fritzing apply: tags: fritzing vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('fritzing', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('fritzing', {}) }}" tags: fritzing - include_role: name: remmina apply: tags: remmina vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('remmina', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('remmina', {}) }}" tags: remmina - include_role: name: geogebra apply: tags: geogebra vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('geogebra', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('geogebra', {}) }}" tags: geogebra - include_role: name: marble apply: tags: marble vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('marble', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('marble', {}) }}" tags: marble - include_role: name: google-chrome apply: tags: google-chrome vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('google-chrome', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('google-chrome', {}) }}" tags: google-chrome - include_role: name: anydesk apply: tags: anydesk vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('anydesk', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('anydesk', {}) }}" tags: anydesk - include_role: name: kolibri apply: tags: kolibri vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kolibri', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kolibri', {}) }}" tags: kolibri - include_role: name: veyon apply: tags: veyon vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('veyon', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('veyon', {}) }}" tags: veyon - include_role: name: gdevelop apply: tags: gdevelop vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('gdevelop', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('gdevelop', {}) }}" tags: gdevelop - include_role: name: turbowarp apply: tags: turbowarp vars: 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 - include_role: name: multimedia-codecs apply: tags: multimedia-codecs vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('multimedia-codecs', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('multimedia-codecs', {}) }}" tags: multimedia-codecs - include_role: name: barrierefreiheit apply: tags: barrierefreiheit vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('barrierefreiheit', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('barrierefreiheit', {}) }}" tags: barrierefreiheit - include_role: name: wlan-firmware apply: tags: wlan-firmware vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('wlan-firmware', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('wlan-firmware', {}) }}" tags: wlan-firmware - include_role: name: firewall apply: tags: firewall vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('firewall', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('firewall', {}) }}" tags: firewall - include_role: name: virenscanner apply: tags: virenscanner vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('virenscanner', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('virenscanner', {}) }}" tags: virenscanner - include_role: name: security-updates apply: tags: security-updates vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('security-updates', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('security-updates', {}) }}" tags: security-updates - include_role: name: tastaturlayout apply: tags: tastaturlayout vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('tastaturlayout', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('tastaturlayout', {}) }}" tags: tastaturlayout - include_role: name: laender apply: tags: laender vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('laender', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('laender', {}) }}" tags: laender - include_role: name: zeitserver apply: tags: zeitserver vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('zeitserver', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('zeitserver', {}) }}" tags: zeitserver - include_role: name: auto-update apply: tags: auto-update vars: tuxflotte_state: "{{ tuxflotte_auftrag_states.get('auto-update', 'present') }}" tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('auto-update', {}) }}" tags: auto-update