--- ######### # 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 - libnotify-bin ## needed for pwroff script - neovim - net-tools - netcat-openbsd - nmap - tmux - tree - ttf-mscorefonts-installer - libdvd-pkg - handbrake - slic3r-prusa - filius 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 ######### # Anpassungen für Login Screen und Hintergrund # Wir möchten am Login-Screen das Hintergrund-Bild # qgm_background.jpg - in Schwarz/Weiss haben # Bei der Anmeldung soll das Bild # qgm_background_desktop.jpg - in Farbe # gesetzt werden. # Das passiert im Skript qgm-login.sh, das weiter unten # auf die Rechner kopiert wird - name: Make qgm share directory file: path: /usr/local/share/qgm state: directory mode: '0755' owner: root group: root - name: Copy qgm background pictures ansible.builtin.copy: src: "{{ item }}" dest: /usr/local/share/qgm/ mode: '0644' owner: root group: root loop: - qgm_background.jpg - qgm_background_wallpaper.jpg - name: Entpacke qgm-breeze-sddm.tgz nach /usr/share/sddm/themes unarchive: src: files/qgm-breeze-sddm.tgz dest: /usr/share/sddm/themes - name: Link /etc/alternatives/sddm-debian-theme nach /usr/share/sddm/themes/qgm-breeze/ file: src: /usr/share/sddm/themes/qgm-breeze/ dest: /etc/alternatives/sddm-debian-theme owner: root group: root state: link ######### # 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: '0644' owner: root group: root ######### # Anpassungen an KDE # - Doppelklick zum öffnen von Dateien # - Style aug breeze fetstackern # - Kein Benutzerwechsel # - Kein Lockscreen # - Keine neue Session - 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 ######### # 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' ######### # 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 ######### # Greenfoot und BlueJ. # Müssen einmalig auf den netboot Server # in den http Cache geschoben werden. # Siehe Script im Repo. # # Außerdem ist hier Optimierungspotential: # - Installation direkt von der URL # - Installation nur, wenn die neueste Version noch # nicht installiert ist - name: Download greenfoot/bluej ansible.builtin.get_url: url: "{{ mirror_javadev }}/{{ item }}" dest: /tmp/{{ item }} mode: '0400' loop: - bluej.deb - greenfoot.deb when: mirror_javadev is defined and mirror_javadev | length > 0 - name: Install greenfoot/bluej ansible.builtin.apt: deb: "/tmp/{{ item }}" loop: - bluej.deb - greenfoot.deb when: mirror_javadev is defined and mirror_javadev | length > 0 - name: Remove greenfoot/bluej debs ansible.builtin.file: path: "/tmp/{{ item }}" state: absent loop: - bluej.deb - greenfoot.deb when: mirror_javadev is defined and mirror_javadev | length > 0 ######### # 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: relaod 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 file (delete file) ansible.builtin.file: path: /etc/firefox-esr/policies/firefox_policies.json state: absent