bookworm/roles/lmn_qgm/tasks/main.yml

284 lines
7.1 KiB
YAML
Raw Normal View History

2023-09-06 14:43:55 +02:00
---
#########
# Management: Ansible User benötigt auf den Clients kein
# Passwort für sudo
2023-09-06 16:45:33 +02:00
- 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
2023-09-06 14:43:55 +02:00
- 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
2023-09-07 13:10:12 +02:00
- 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
2023-09-06 14:43:55 +02:00
- 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
2023-09-07 13:10:12 +02:00
- libdvd-pkg
- handbrake
- slic3r-prusa
- filius
2023-09-15 15:38:05 +02:00
- wine
2023-09-06 14:43:55 +02:00
autoremove: true
state: latest
environment:
http_proxy: '' # this is needed to avoid ttf-mscorefonts-installer picking up aptcacher
2023-09-06 14:43:55 +02:00
#########
# libdvdcss muss gebaut werden
# Optimierungspotential: Einmal bauen und über netboot
# die Pakete verteilen geht wahrscheinlich schneller
2023-09-07 13:10:12 +02:00
- name: Build libdvdcss
ansible.builtin.shell:
cmd: dpkg-reconfigure -f noninteractive libdvd-pkg
#########
# Den cups-browsed will ich gar nicht haben, nicht
# nur disablen.
2023-09-07 13:10:12 +02:00
- name: Remove cups-browsed
ansible.builtin.apt:
name: cups-browsed
state: absent
2023-09-06 14:43:55 +02:00
#########
# 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
2023-09-06 14:43:55 +02:00
- 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/
2023-09-06 14:43:55 +02:00
mode: '0644'
owner: root
group: root
loop:
- qgm_background.jpg
- qgm_background_wallpaper.jpg
2023-09-06 14:43:55 +02:00
- 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
2023-09-06 14:43:55 +02:00
- 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...
2023-09-06 16:45:33 +02:00
- name: Disable screen locking
ansible.builtin.copy:
dest: /etc/xdg/kscreenlockerrc
content: |
2023-09-06 14:43:55 +02:00
[Daemon][$i]
2023-09-06 16:45:33 +02:00
Autolock=false
LockOnResume=false
2023-09-06 18:13:29 +02:00
[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'
2023-09-06 18:13:29 +02:00
#########
# 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
2023-09-06 14:43:55 +02:00
- 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
2023-09-06 14:43:55 +02:00
#########
# 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'
2023-09-06 14:43:55 +02:00
- 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