2023-01-22 11:49:57 +01:00
|
|
|
---
|
2023-09-02 15:46:27 +02:00
|
|
|
- name: Install desktop and educational packages
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.apt:
|
2023-01-22 11:49:57 +01:00
|
|
|
name:
|
2023-08-14 17:26:24 +02:00
|
|
|
- akonadi-backend-sqlite
|
2023-09-02 15:46:27 +02:00
|
|
|
- arduino
|
2023-01-22 11:49:57 +01:00
|
|
|
- bluefish
|
2023-09-13 19:34:02 +02:00
|
|
|
- calligra
|
2023-09-02 15:46:27 +02:00
|
|
|
- codeblocks
|
|
|
|
- dia
|
|
|
|
- flameshot
|
|
|
|
- freecad
|
2023-09-13 19:34:02 +02:00
|
|
|
- fritzing
|
2023-01-22 11:49:57 +01:00
|
|
|
- ghex
|
2023-09-02 15:46:27 +02:00
|
|
|
- gimp
|
|
|
|
- inkscape
|
|
|
|
- kde-full
|
|
|
|
- keepassxc
|
|
|
|
- librecad
|
2023-08-14 16:42:33 +02:00
|
|
|
- mu-editor
|
2023-09-13 19:34:02 +02:00
|
|
|
- openboard
|
2023-09-02 15:46:27 +02:00
|
|
|
- qtcreator
|
|
|
|
- spyder
|
2023-07-12 15:52:09 +02:00
|
|
|
- sqlite3
|
|
|
|
- sqlitebrowser
|
2023-09-02 15:46:27 +02:00
|
|
|
- task-german-desktop
|
|
|
|
- task-german-kde-desktop
|
|
|
|
- task-kde-desktop
|
|
|
|
- thonny
|
|
|
|
- thunderbird-l10n-de
|
|
|
|
- vlc
|
|
|
|
- vym
|
|
|
|
- webext-privacy-badger
|
|
|
|
- webext-ublock-origin-chromium
|
|
|
|
- webext-ublock-origin-firefox
|
|
|
|
- xdg-desktop-portal-kde
|
|
|
|
- xdg-desktop-portal-wlr # share screen in browser
|
2023-09-13 19:34:02 +02:00
|
|
|
- xournalpp
|
2023-08-14 21:28:16 +02:00
|
|
|
autoremove: true
|
2023-01-22 11:49:57 +01:00
|
|
|
state: latest
|
2023-01-22 19:46:22 +01:00
|
|
|
|
2025-03-24 07:33:56 +01:00
|
|
|
- name: Add backports {{ ansible_distribution_release }}
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.apt_repository:
|
2023-08-16 14:46:55 +02:00
|
|
|
repo: deb http://deb.debian.org/debian/ {{ ansible_distribution_release }}-backports main non-free-firmware
|
2023-01-22 19:46:22 +01:00
|
|
|
state: present
|
|
|
|
update_cache: true
|
|
|
|
|
2023-08-12 19:22:15 +02:00
|
|
|
- name: Install extra packages from backports
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.apt:
|
2023-01-22 19:46:22 +01:00
|
|
|
name:
|
2023-09-07 07:55:53 +02:00
|
|
|
- filius
|
2023-08-16 14:46:55 +02:00
|
|
|
- kicad
|
|
|
|
- kicad-doc-de
|
2023-09-07 07:55:53 +02:00
|
|
|
- libreoffice
|
|
|
|
- libreoffice-l10n-de
|
2025-01-20 15:54:56 +01:00
|
|
|
- libreoffice-qt5
|
2023-01-22 19:46:22 +01:00
|
|
|
state: latest # noqa package-latest
|
|
|
|
autoremove: true
|
|
|
|
default_release: "{{ ansible_distribution_release }}-backports"
|
|
|
|
|
2023-08-11 18:23:32 +02:00
|
|
|
|
|
|
|
- name: Create akonadi config dir
|
|
|
|
ansible.builtin.file:
|
|
|
|
path: /etc/xdg/akonadi/
|
|
|
|
state: directory
|
|
|
|
mode: '0755'
|
|
|
|
|
|
|
|
- name: Use sqlite in akonadi
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.blockinfile:
|
2023-08-11 18:23:32 +02:00
|
|
|
path: /etc/xdg/akonadi/akonadiserverrc
|
|
|
|
create: true
|
2025-03-24 07:33:56 +01:00
|
|
|
mode: '0644'
|
2023-08-11 18:23:32 +02:00
|
|
|
block: |
|
|
|
|
[%General]
|
|
|
|
Driver=QSQLITE3
|
|
|
|
|
2023-10-19 21:30:25 +02:00
|
|
|
## Akonadi complains if not set:
|
2023-03-17 19:46:22 +01:00
|
|
|
- name: Add home dirs to apparmor
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.lineinfile:
|
2023-03-17 19:46:22 +01:00
|
|
|
dest: /etc/apparmor.d/tunables/home.d/ubuntu
|
|
|
|
line: >-
|
|
|
|
@{HOMEDIRS}+=/srv/samba/schools/default-school/teachers/
|
|
|
|
/srv/samba/schools/default-school/students/*/
|
2023-10-19 21:30:25 +02:00
|
|
|
/srv/samba/schools/default-school/examusers/
|
2023-01-22 19:46:22 +01:00
|
|
|
|
2023-08-11 18:23:32 +02:00
|
|
|
|
2025-03-24 07:33:56 +01:00
|
|
|
- name: Tune SDDM login
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.blockinfile:
|
2023-01-22 11:49:57 +01:00
|
|
|
path: /etc/sddm.conf
|
|
|
|
create: true
|
2025-03-24 07:33:56 +01:00
|
|
|
mode: '0644'
|
2023-01-22 11:49:57 +01:00
|
|
|
block: |
|
|
|
|
[Users]
|
|
|
|
MaximumUid=999
|
|
|
|
RememberLastUser=false
|
|
|
|
RememberLastSession=false
|
|
|
|
|
2023-10-10 12:36:58 +02:00
|
|
|
- name: Enable wake-on-lan for all ethernet connections
|
|
|
|
ansible.builtin.copy:
|
|
|
|
dest: /etc/NetworkManager/conf.d/wake-on-lan.conf
|
2025-03-24 07:33:56 +01:00
|
|
|
mode: '0644'
|
2023-10-10 12:36:58 +02:00
|
|
|
content: |
|
|
|
|
[connection]
|
|
|
|
ethernet.wake-on-lan=64
|
2023-08-15 13:25:22 +02:00
|
|
|
|
2024-11-08 11:55:42 +01:00
|
|
|
- name: Prepare directory for apt-daily override
|
|
|
|
ansible.builtin.file:
|
|
|
|
path: /etc/systemd/system/apt-daily.timer.d/
|
2025-03-24 07:33:56 +01:00
|
|
|
recurse: true
|
|
|
|
mode: '0755'
|
2024-11-08 11:55:42 +01:00
|
|
|
state: directory
|
|
|
|
|
|
|
|
- name: Run apt update early to avoid outdated package lists
|
|
|
|
ansible.builtin.copy:
|
|
|
|
dest: /etc/systemd/system/apt-daily.timer.d/override.conf
|
2025-03-24 07:33:56 +01:00
|
|
|
mode: '0644'
|
2024-11-08 11:55:42 +01:00
|
|
|
content: |
|
|
|
|
[Timer]
|
|
|
|
RandomizedDelaySec=30m
|
|
|
|
|
2023-07-14 13:01:46 +02:00
|
|
|
- name: Create directory to avoid suspend
|
|
|
|
ansible.builtin.file:
|
|
|
|
path: /etc/systemd/sleep.conf.d/
|
|
|
|
state: directory
|
|
|
|
mode: '0755'
|
2024-11-21 11:20:26 +01:00
|
|
|
when: "'teacherlaptop' not in group_names"
|
2023-07-14 13:01:46 +02:00
|
|
|
|
|
|
|
- name: Avoid suspending
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.blockinfile:
|
2023-07-14 13:01:46 +02:00
|
|
|
path: /etc/systemd/sleep.conf.d/nosuspend.conf
|
|
|
|
create: true
|
2025-03-24 07:33:56 +01:00
|
|
|
mode: '0644'
|
2023-07-14 13:01:46 +02:00
|
|
|
block: |
|
|
|
|
[Sleep]
|
|
|
|
AllowSuspend=no
|
|
|
|
AllowHibernation=no
|
|
|
|
AllowSuspendThenHibernate=no
|
|
|
|
AllowHybridSleep=no
|
2024-11-21 11:20:26 +01:00
|
|
|
when: "'teacherlaptop' not in group_names"
|
2023-01-22 11:49:57 +01:00
|
|
|
|
2023-09-13 19:36:20 +02:00
|
|
|
- name: Deploy dolphin script
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.copy:
|
2023-09-13 19:36:20 +02:00
|
|
|
src: lmn-fix-dolphin.sh
|
|
|
|
dest: /usr/local/bin/
|
|
|
|
mode: '0755'
|
2023-08-06 13:51:16 +02:00
|
|
|
|
2023-07-23 11:35:06 +02:00
|
|
|
################# general settings ##################
|
2023-09-02 15:46:27 +02:00
|
|
|
- name: Enable boot splash screen
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.replace:
|
2023-09-02 15:46:27 +02:00
|
|
|
dest: "/etc/default/grub"
|
|
|
|
regexp: '"quiet"$'
|
|
|
|
replace: '"quiet splash"'
|
|
|
|
notify: Run update-grub
|
|
|
|
|
2024-01-11 17:16:05 +01:00
|
|
|
- name: Protect editing grub menu entries
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.blockinfile:
|
2023-07-23 11:35:06 +02:00
|
|
|
path: /etc/grub.d/40_custom
|
|
|
|
block: |
|
|
|
|
set superusers='root'
|
2024-01-11 17:16:05 +01:00
|
|
|
export superusers
|
2023-07-23 11:35:06 +02:00
|
|
|
password_pbkdf2 root {{ grub_pwd }}
|
2023-07-24 08:25:18 +02:00
|
|
|
notify: Run update-grub
|
2023-07-23 11:35:06 +02:00
|
|
|
|
2024-01-11 17:16:05 +01:00
|
|
|
- name: Allow booting grub menu entries
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.lineinfile:
|
2023-07-23 17:06:08 +02:00
|
|
|
dest: /etc/grub.d/10_linux
|
|
|
|
line: CLASS="${CLASS} --unrestricted"
|
|
|
|
insertafter: '^CLASS=.*'
|
|
|
|
firstmatch: true
|
2023-07-24 08:25:18 +02:00
|
|
|
notify: Run update-grub
|
2023-07-23 17:06:08 +02:00
|
|
|
|
2024-01-12 13:24:14 +01:00
|
|
|
- name: Disable Grub submenus
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.lineinfile:
|
2024-01-12 13:24:14 +01:00
|
|
|
dest: /etc/default/grub
|
|
|
|
line: 'GRUB_DISABLE_SUBMENU=true'
|
|
|
|
insertafter: '^GRUB_TIMEOUT=.*'
|
2024-01-11 17:16:05 +01:00
|
|
|
notify: Run update-grub
|
|
|
|
|
2023-08-16 20:50:44 +02:00
|
|
|
- name: Grub timeout
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.lineinfile:
|
2023-01-22 11:49:57 +01:00
|
|
|
dest: /etc/default/grub
|
|
|
|
regexp: '^(GRUB_TIMEOUT=).*'
|
2024-01-12 13:24:14 +01:00
|
|
|
line: '\g<1>1'
|
2025-03-24 07:33:56 +01:00
|
|
|
backrefs: true
|
2023-07-24 08:25:18 +02:00
|
|
|
notify: Run update-grub
|
2023-01-22 11:49:57 +01:00
|
|
|
|
2023-08-16 20:50:44 +02:00
|
|
|
- name: Keyboard compose key
|
2024-09-06 08:13:48 +02:00
|
|
|
ansible.builtin.lineinfile:
|
2023-01-22 11:49:57 +01:00
|
|
|
dest: /etc/default/keyboard
|
|
|
|
regexp: '^(XKBOPTIONS=).*'
|
|
|
|
line: '\1"compose:caps"'
|
2025-03-24 07:33:56 +01:00
|
|
|
backrefs: true
|
2024-09-06 08:13:48 +02:00
|
|
|
|
|
|
|
- name: Default KDE filepicker
|
|
|
|
ansible.builtin.lineinfile:
|
|
|
|
path: /etc/environment.d/90lmn-filepicker.conf
|
|
|
|
create: true
|
2025-03-24 07:33:56 +01:00
|
|
|
mode: '0644'
|
2024-09-06 08:13:48 +02:00
|
|
|
line: GTK_USE_PORTAL=1
|