google-chrome, anydesk: distributionsunabhängige Hersteller-apt-Repos (Repo-URL+GPG-Key real recherchiert und verifiziert, 09.09.2026). kolibri: neueres, distributionsunabhängiges GitHub-Pages-Repo von Learning Equality (offiziell nur für Debian 13+ dokumentiert - NICHT live auf Mint/Ubuntu bestätigt, siehe Rollenkommentar). veyon: kein universelles Repo verfügbar, offizielle .deb-Downloads sind pro Distro/Version fest gebaut - Codename-Erkennung über /etc/os-release (UBUNTU_CODENAME bei Mint/Ubuntu, VERSION_CODENAME bei Debian) mit expliziter Zuordnungstabelle (trixie/noble/resolute). Nur der Debian-Fall bisher real bestätigt, siehe Rollenkommentar - vor breitem Rollout auf allen drei Golden-VMs live gegenprüfen. gdevelop, turbowarp: kein Debian-Paket, Flathub-IDs real bestätigt (io.gdevelop.ide, org.turbowarp.TurboWarp) - Flatpak-Fallback wie bei brave/libreoffice/onlyoffice. Vectr bewusst NICHT als native Rolle - hat kein Debian-Paket, nur Snap (passt nicht zu Mints Snap-Abstinenz) oder Web-App - wird stattdessen ein Default-Eintrag im neuen Webapp-Mechanismus. Gehört zusammen mit admin/provisioning-server-Migration 0031 (live auf anode angewendet+verifiziert: 6 Merkmale, 18 Blueprint-Zeilen). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VLk93dhDMrkPXefVdknMV9
365 lines
11 KiB
YAML
365 lines
11 KiB
YAML
- 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: {}
|
|
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
|