765 lines
25 KiB
YAML
765 lines
25 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 (oe_merkmale/
|
|
# gruppen_merkmale.optionen - device_merkmale gibt es seit ADR-0028
|
|
# nicht mehr, siehe dort), z.B. {"proxy_adresse": "…"} bei update-proxy.
|
|
# 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: []
|
|
# Vom Agenten per --extra-vars gesetzt (Check-in-Response "hostname",
|
|
# Design-Runde 10.09.2026, siehe ADR-0028/Roadmap) - leer, wenn die
|
|
# Organisation keine Hostnamenkonvention konfiguriert hat. Verarbeitet
|
|
# ausschließlich von der hostname-Rolle (siehe dort), ebenfalls kein
|
|
# present/absent-Merkmal.
|
|
tuxflotte_zielhostname: ""
|
|
# Vom Agenten gesetzt (Check-in-Response "persoenliche_konten", ADR-0041
|
|
# Schritt 3): je persönlichem Konto {id, anmeldename, aktion,
|
|
# passwort_hash?}, verarbeitet von der Rolle persoenliche-konten.
|
|
tuxflotte_persoenliche_konten: []
|
|
tasks:
|
|
# Feste Grundkonfiguration, laeuft immer zuerst: Paketliste des Golden
|
|
# Image fuer die absent-Pfade der Rollen + Reparatur (siehe Rolle).
|
|
- include_role:
|
|
name: grundsystem
|
|
apply:
|
|
tags: always
|
|
tags: always
|
|
|
|
# Agent auf die freigegebene Fassung bringen (siehe Rolle). Tag "always":
|
|
# läuft bei jedem Durchgang; der Tausch selbst passiert erst danach.
|
|
- include_role:
|
|
name: agent
|
|
apply:
|
|
tags: always
|
|
tags: always
|
|
|
|
- include_role:
|
|
name: hostname
|
|
apply:
|
|
tags: hostname
|
|
vars:
|
|
tuxflotte_zielhostname: "{{ tuxflotte_zielhostname }}"
|
|
tags: hostname
|
|
|
|
# Feste Grundkonfiguration, kein Merkmal: Tag "always" laeuft bei jedem
|
|
# ansible-pull, auch wenn der Agent nur ausgewaehlte --tags uebergibt.
|
|
- include_role:
|
|
name: sitzungsauswahl
|
|
apply:
|
|
tags: always
|
|
tags: always
|
|
|
|
# Org-Ressourcen (kein Katalog-Merkmal, siehe Rolle). Vor den App-
|
|
# Rollen, damit die Datei steht, wenn sie laufen; die App-Rollen lesen
|
|
# die Liste aber selbst aus tuxflotte_auftrag_optionen. Ohne Auftrag vom
|
|
# Server läuft die Rolle gar nicht (kein Tag).
|
|
- include_role:
|
|
name: org-ressourcen
|
|
apply:
|
|
tags: org-ressourcen
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('org-ressourcen', 'absent') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('org-ressourcen', {}) }}"
|
|
tags: org-ressourcen
|
|
|
|
- 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
|
|
|
|
# Persönliche Konten aus der Personalisierung (ADR-0041), unabhängig
|
|
# vom Merkmal; läuft bei jedem Agent-Lauf mit (siehe agent.py).
|
|
- include_role:
|
|
name: persoenliche-konten
|
|
apply:
|
|
tags: persoenliche-konten
|
|
tags: persoenliche-konten
|
|
|
|
# Merkmal "Personalisierung möglich" (ADR-0041): Hinweis "Passwort vergessen?"
|
|
# mit QR-Code (25.10.2026); baut Kiosk früherer Stände ab.
|
|
- include_role:
|
|
name: personalisierung
|
|
apply:
|
|
tags: personalisierung
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('personalisierung', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('personalisierung', {}) }}"
|
|
tags: personalisierung
|
|
|
|
# Merkmal "Kiosk" (roadmap/kiosk.md, 26.10.2026): Konto mit Vollbild-
|
|
# Browser am Anmeldebildschirm, optional Autostart.
|
|
- include_role:
|
|
name: kiosk
|
|
apply:
|
|
tags: kiosk
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('kiosk', 'absent') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('kiosk', {}) }}"
|
|
tags: kiosk
|
|
|
|
- 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
|
|
|
|
# App-Merkmale 26.10.2026 (Roadmap "Neue App-Merkmale" + Nutzer-Wünsche).
|
|
- include_role:
|
|
name: tipp10
|
|
apply:
|
|
tags: tipp10
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('tipp10', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('tipp10', {}) }}"
|
|
tags: tipp10
|
|
|
|
- include_role:
|
|
name: zoom
|
|
apply:
|
|
tags: zoom
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('zoom', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('zoom', {}) }}"
|
|
tags: zoom
|
|
|
|
- include_role:
|
|
name: webex
|
|
apply:
|
|
tags: webex
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('webex', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('webex', {}) }}"
|
|
tags: webex
|
|
|
|
- include_role:
|
|
name: shutter
|
|
apply:
|
|
tags: shutter
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('shutter', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('shutter', {}) }}"
|
|
tags: shutter
|
|
|
|
- include_role:
|
|
name: xournalpp
|
|
apply:
|
|
tags: xournalpp
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('xournalpp', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('xournalpp', {}) }}"
|
|
tags: xournalpp
|
|
|
|
- include_role:
|
|
name: bluej
|
|
apply:
|
|
tags: bluej
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('bluej', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('bluej', {}) }}"
|
|
tags: bluej
|
|
|
|
- include_role:
|
|
name: vscode
|
|
apply:
|
|
tags: vscode
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('vscode', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('vscode', {}) }}"
|
|
tags: vscode
|
|
|
|
- include_role:
|
|
name: bluefish
|
|
apply:
|
|
tags: bluefish
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('bluefish', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('bluefish', {}) }}"
|
|
tags: bluefish
|
|
|
|
- include_role:
|
|
name: geany
|
|
apply:
|
|
tags: geany
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('geany', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('geany', {}) }}"
|
|
tags: geany
|
|
|
|
- include_role:
|
|
name: pulsar
|
|
apply:
|
|
tags: pulsar
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('pulsar', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('pulsar', {}) }}"
|
|
tags: pulsar
|
|
|
|
- include_role:
|
|
name: dbeaver
|
|
apply:
|
|
tags: dbeaver
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('dbeaver', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('dbeaver', {}) }}"
|
|
tags: dbeaver
|
|
|
|
- include_role:
|
|
name: chromium
|
|
apply:
|
|
tags: chromium
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('chromium', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('chromium', {}) }}"
|
|
tags: chromium
|
|
|
|
- include_role:
|
|
name: microsoft-edge
|
|
apply:
|
|
tags: microsoft-edge
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('microsoft-edge', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('microsoft-edge', {}) }}"
|
|
tags: microsoft-edge
|
|
|
|
# Standardbrowser der Workspace-Version (kein Katalog-Merkmal, siehe
|
|
# Rolle). Muss NACH allen Browser-Rollen stehen: gesetzt wird nur ein
|
|
# Browser, dessen .desktop-Datei es schon gibt. Ohne Auftrag vom Server
|
|
# läuft die Rolle gar nicht (kein Tag); der Default "absent" gilt nur,
|
|
# wenn jemand das Tag von Hand übergibt.
|
|
- include_role:
|
|
name: standardbrowser
|
|
apply:
|
|
tags: standardbrowser
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('standardbrowser', 'absent') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('standardbrowser', {}) }}"
|
|
tags: standardbrowser
|
|
|
|
# Muss NACH chromium/google-chrome stehen (siehe oben) - webapp-
|
|
# shortcuts entscheidet den Kiosk-Exec-Befehl serverseitig (siehe
|
|
# fetch_workspace_webapps() in app.py), braucht also selbst keine
|
|
# Rollen-Reihenfolge-Abhängigkeit zur Laufzeit, aber die Reihenfolge
|
|
# hier hält die Zuordnung "Browser-Rollen vor Webapp-Rollen" trotzdem
|
|
# konsistent lesbar.
|
|
- 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: terminal-sperre
|
|
apply:
|
|
tags: terminal-sperre
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('terminal-sperre', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('terminal-sperre', {}) }}"
|
|
tags: terminal-sperre
|
|
|
|
- include_role:
|
|
name: diagnosezugang-sperre
|
|
apply:
|
|
tags: diagnosezugang-sperre
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('diagnosezugang-sperre', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('diagnosezugang-sperre', {}) }}"
|
|
tags: diagnosezugang-sperre
|
|
|
|
- include_role:
|
|
name: konsolenwechsel-sperre
|
|
apply:
|
|
tags: konsolenwechsel-sperre
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('konsolenwechsel-sperre', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('konsolenwechsel-sperre', {}) }}"
|
|
tags: konsolenwechsel-sperre
|
|
|
|
- include_role:
|
|
name: netzwerkscanner-sperre
|
|
apply:
|
|
tags: netzwerkscanner-sperre
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('netzwerkscanner-sperre', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('netzwerkscanner-sperre', {}) }}"
|
|
tags: netzwerkscanner-sperre
|
|
|
|
- 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
|
|
|
|
- include_role:
|
|
name: ad-anbindung
|
|
apply:
|
|
tags: ad-anbindung
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('ad-anbindung', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('ad-anbindung', {}) }}"
|
|
tags: ad-anbindung
|
|
|
|
- include_role:
|
|
name: org-wlan
|
|
apply:
|
|
tags: org-wlan
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('org-wlan', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('org-wlan', {}) }}"
|
|
tags: org-wlan
|
|
|
|
- include_role:
|
|
name: fileserver
|
|
apply:
|
|
tags: fileserver
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('fileserver', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('fileserver', {}) }}"
|
|
tags: fileserver
|
|
|
|
- include_role:
|
|
name: update-proxy
|
|
apply:
|
|
tags: update-proxy
|
|
vars:
|
|
tuxflotte_state: "{{ tuxflotte_auftrag_states.get('update-proxy', 'present') }}"
|
|
tuxflotte_optionen: "{{ tuxflotte_auftrag_optionen.get('update-proxy', {}) }}"
|
|
tags: update-proxy
|