--- ######### # Management: Ansible User benötigt auf den Clients kein # Passwort für sudo - name: Enable passwordless sudo access for user ansible lineinfile: path: /etc/sudoers state: present regexp: '^ansible ALL=' line: 'ansible ALL=(ALL) NOPASSWD: ALL' validate: '/usr/sbin/visudo -cf %s' ######### # Paketvorkonfigurationen - name: Preseed ttf-mscorefonts-installer ansible.builtin.debconf: name: ttf-mscorefonts-installer question: msttcorefonts/dlurl value: "{{ mirror_msfonts }}" vtype: string when: mirror_msfonts is defined and mirror_msfonts | length > 0 - name: Preseed libdvd-pkg ansible.builtin.debconf: name: libdvd-pkg question: libdvd-pkg/build value: "true" vtype: boolean ansible.builtin.debconf: name: libdvd-pkg question: libdvd-pkg/post-invoke_hook-install value: "true" vtype: boolean ansible.builtin.debconf: name: libdvd-pkg question: libdvd-pkg/post-invoke_hook-remove value: "false" vtype: boolean ######### # Softwareauswahl - name: Install desktop EDU packages and some more apt: name: - curl - git - gitg - gitk - lshw - libnotify-bin ## needed for pwroff script - neovim - net-tools - ethtool - netcat-openbsd - nmap - tmux - hexyl - meld - tree - hashcat - ttf-mscorefonts-installer - libdvd-pkg - handbrake - firmware-intel-sound - cura - filius - wine - kdenlive - terminator - geany autoremove: true state: latest environment: http_proxy: '' # this is needed to avoid ttf-mscorefonts-installer picking up aptcacher ######### # libdvdcss muss gebaut werden # Optimierungspotential: Einmal bauen und über netboot # die Pakete verteilen geht wahrscheinlich schneller - name: Build libdvdcss ansible.builtin.shell: cmd: dpkg-reconfigure -f noninteractive libdvd-pkg ######### # Den cups-browsed will ich gar nicht haben, nicht # nur disablen. - name: Remove cups-browsed ansible.builtin.apt: name: cups-browsed state: absent ######### # Das Skript, das beim Userlogin ausgeführt wird # Setzt derzeit nur den Hintergrund zurück - nicht bei der # allerersten Anmeldung eines Nutzers, weil es da die KDE Config noch # nicht gibt. - name: Copy qgm-login.sh for misc login Tasks copy: src: files/qgm-login.sh dest: /etc/profile.d/qgm-login.sh mode: '0664' owner: root group: root ######### # Anpassungen an KDE # - Doppelklick zum öffnen von Dateien # - Style aug breeze fetstackern # - Kein Benutzerwechsel # - Kein Lockscreen # - Keine neue Session # - Login Session immer leer starten, nicht die laufenden Anwendungen merken - name: Set mandatory KDE settings ansible.builtin.copy: dest: /etc/xdg/kdeglobals content: | [KDE][$i] SingleClick=false widgetStyle=breeze [KDE Action Restrictions][$i] action/switch_user=false action/lock_screen=false action/start_new_session=false [General][$i] loginMode=emptySession ######### # Screen Locking abschalten, Mittelstufenschüler... - name: Disable screen locking ansible.builtin.copy: dest: /etc/xdg/kscreenlockerrc content: | [Daemon][$i] Autolock=false LockOnResume=false [Greeter][Wallpaper][org.kde.image][General] Image=file:///usr/local/share/qgm/qgm_background.jpg ######## # Logout beschleunigen - name: Wartezeit nach KDE nach Logout/Shutdown verkürzen ansible.builtin.replace: path: /usr/share/plasma/look-and-feel/org.kde.breeze.desktop/contents/logout/Logout.qml regexp: '^(\s+)property real timeout:.*$' replace: '\1property real timeout: 4' ######## # Wayland abschalten, Standardsession X11 # SDDM hat (noch) keine Option, die Standardsession vorzugeben # Bei einem "normalen" System, merkt er sich die letzte Sitzung, die # der Nutzer wählt für künftige Anmeldungen, das klappt im Netz nicht. # Die Session Liste baut er alphabetisch zusammen aus den desktop-Dateien # in den Verzeichnissen /usr/share/wayland-sessions und /usr/share/xsessions/ # der erste Eintrag ist Standard - und das ist leider eben immer die Sitzung in # wayland-sessions. Darum: Weg damit ;) - name: Disable wayland session systemwide ansible.builtin.file: path: /usr/share/wayland-sessions/plasmawayland.desktop state: absent ######### # plasma-discover ist der grafische Paketmamanger # der stürzt nur ab und die Bejutzer können eh # nichts selbst installieren - name: Remove plasma-discover ansible.builtin.apt: name: plasma-discover state: absent ######### # Anpassungen für Arduino # - modemmanager dinstallieren, soll die Probleme mit wechselnden # Device Namen lössen (ungetestet) # - Udev-Rule, so dass die Devices mit 0666 angelegt werden, wie # Warnung des Debian Pakets "arduino" wegen der dialout Gruppe # bleiben leider. - name: Remove modemmanager to fix arduino problems ansible.builtin.apt: name: modemmanager state: absent - name: Copy arduino udev rule copy: src: files/52-arduino.rules dest: /etc/udev/rules.d/52-arduino.rules mode: '0644' owner: root group: root - name: reload udev rules ansible.builtin.command: udevadm control --reload-rules - name: trigger udev update ansible.builtin.command: udevadm trigger ######### # Firefox ESR Anpassungen # Lesezeichen und Startseite müssen in der # Datei firefox_policies.json für die eigene Schule # angepasst werden. - name: Create firefox policies directory ansible.builtin.file: path: /etc/firefox-esr/policies state: directory mode: '0755' - name: Create a symbolic link firefox to firefox-esr ansible.builtin.file: src: /etc/firefox-esr dest: /etc/firefox state: link - name: Copy firefox policy ansible.builtin.copy: src: firefox_policies.json dest: /etc/firefox-esr/policies/policies.json - name: Remove wrongly copied policies file ansible.builtin.file: path: /etc/firefox-esr/policies/firefox_policies.json state: absent ########## # Enable WOL # - name: Enable WOL ansible.builtin.command: ethtool -s {{ ansible_default_ipv4.interface }} wol g - name: Copy 81-wol.rules to target copy: src: 81-wol.rules dest: /etc/udev/rules.d/81-wol.rules mode: '0644' owner: root group: root - name: Copy qgm-abmelden.desktop copy: src: qgm-abmelden.desktop dest: /usr/share/applications/qgm-abmelden.desktop mode: '0755' owner: root group: root - name: Copy modified Forefox Starter copy: src: firefox-esr.desktop dest: /usr/share/applications/firefox-esr.desktop mode: '0644' owner: root group: root - name: Copy logout icon copy: src: logout.png dest: /usr/share/icons/logout.png mode: '0644' owner: root group: root