156 lines
5.4 KiB
YAML
156 lines
5.4 KiB
YAML
## This playbook deploys a KDE desktop machine for LinuxMuster.
|
|
---
|
|
- name: apply configuration to the machines
|
|
hosts: all
|
|
remote_user: ansible
|
|
become: yes
|
|
pre_tasks:
|
|
- pause:
|
|
prompt: "Enter global-admin AD password. Leave empty to skip domain join"
|
|
echo: false
|
|
register: adpw
|
|
no_log: true
|
|
when: "ansible_cmdline.adpw is not defined"
|
|
- name: Preseed apparmor
|
|
debconf:
|
|
name: apparmor
|
|
question: apparmor/homedirs
|
|
value: >-
|
|
/srv/samba/schools/default-school/teachers/
|
|
/srv/samba/schools/default-school/students/*/
|
|
vtype: string
|
|
- name: Preseed unattended-upgrades
|
|
debconf:
|
|
name: unattended-upgrades
|
|
question: unattended-upgrades/enable_auto_updates
|
|
value: True
|
|
vtype: boolean
|
|
|
|
vars:
|
|
domain: "{{ ansible_domain }}"
|
|
kerberize_uris: steinbeis.schule
|
|
apt_conf: Acquire::http::Proxy "http://aptcache.pn.steinbeis.schule:3142/";
|
|
ntp_serv: server.pn.steinbeis.schule
|
|
proxy: http://firewall.pn.steinbeis.schule:3128
|
|
no_proxy: firewall.pn.steinbeis.schule,server.pn.steinbeis.schule,idam.steinbeis.schule,dw.steinbeis.schule,.pn.steinbeis.schule,.steinbeis.schule
|
|
|
|
## PAM mount nextcloud, remove or leave empty to skip:
|
|
web_dav: https://nc.steinbeis.schule/remote.php/dav/files/%(USER)
|
|
|
|
## Local mirror for mscorefonts. Remove or leave empty to use no mirror:
|
|
mirror_msfonts: http://livebox.pn.steinbeis.schule/mscorefonts/
|
|
|
|
rsyncsecret: Muster!
|
|
keys2deploy:
|
|
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKOY0hChWaCDtuiuQcM0v4/u1499esjTtnMjl4uYlnS0 andi@netboot'
|
|
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAN5ylqP936MPjGNxzrzV5jMwIfMhKJdOGuVh3xGQKTM andi@yogi'
|
|
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHxgeu7Rpb/1++531+MopqP9haUkyh1XXpv5kmbgSjx6'
|
|
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBbdOT+WSDmsBcaVFfzPRcmvOfd3CqO/FBOH44UVm7c7 raphael@uranus'
|
|
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGICjy88HnMg5oaz4BJ20hgzqFWSem+HHD2PQ+As42pA raphael@pluto'
|
|
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKm9lu9dDo5TG99QWTkl2G5G+ZbYikLlRNOXfs/bRTHy sascha@america'
|
|
- 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMR4TP7jE+wS7zcH0iUBmlxCbvy9saYeEjonX/0yYfEJ daniel@NB-20-DW'
|
|
|
|
## Use grub-mkpasswd-pbkdf2 to calculate the password hash:
|
|
grub_pwd: 'grub.pbkdf2.sha512.10000.FB60266F69FB181327AFB76193192454FC64151559EFF4D6B8FB7C7904A2A9C4778EDD515B46F770DB6A009F36903C193917BBBC571C5B6AAB2A69208BE01A6E.7B82114A0239C0EC55A50E95C48FA74A8910DEE4088447786DAB35770B9C2CF2D1550CF3B7452155EB55D5F84E5D357BF12B8D299CF9B01BF5D71D516CF826DB'
|
|
nfs4: false
|
|
extra_pkgs:
|
|
- vim
|
|
- mc
|
|
- tmux
|
|
- krb5-user
|
|
- unattended-upgrades
|
|
- debconf-utils
|
|
extra_pkgs_bpo: [] # [ linux-image-amd64 ]
|
|
|
|
roles:
|
|
- lmn_network
|
|
- up2date_debian
|
|
- lmn_sssd
|
|
- lmn_mount
|
|
- lmn_kde
|
|
- lmn_fvs ## school specific customization
|
|
- lmn_vm
|
|
- lmn_printer
|
|
- kerberize
|
|
- lmn_security
|
|
|
|
tasks:
|
|
- name: Add local user 'virti' in the 'libvirt' group
|
|
ansible.builtin.user:
|
|
name: virti
|
|
password: $y$j9T$DuSvAO63v5LvoJmJ1rB0B0$D4tovIz79AdLHs5I6tYa7rxr3SWknQeUFvGaaKvUpo3
|
|
comment: Libvirt VM User,,,
|
|
shell: /bin/bash
|
|
groups: libvirt
|
|
append: yes
|
|
when: false
|
|
|
|
## Temporary fixes and quirks:
|
|
- name: Fix 8086:4909 external graphics card
|
|
replace:
|
|
dest: "/etc/default/grub"
|
|
regexp: 'GRUB_CMDLINE_LINUX=""$'
|
|
replace: 'GRUB_CMDLINE_LINUX="i915.force_probe=4909"'
|
|
notify: Run update-grub
|
|
when: ansible_board_vendor == "LENOVO" and ansible_board_name == "32CB"
|
|
|
|
- name: Fix sound on 312A
|
|
replace:
|
|
dest: "/etc/default/grub"
|
|
regexp: 'GRUB_CMDLINE_LINUX="snd-intel-dspcfg.dsp_driver=1"$'
|
|
replace: 'GRUB_CMDLINE_LINUX=""'
|
|
notify: Run update-grub
|
|
when: ansible_board_vendor == "LENOVO" and ansible_board_name == "312A"
|
|
|
|
- name: Fix sound on 312A and 312D
|
|
apt:
|
|
name: firmware-sof-signed
|
|
state: latest
|
|
when: >
|
|
ansible_board_vendor == "LENOVO" and
|
|
(ansible_board_name == "312D" or ansible_board_name == "312A")
|
|
|
|
## Clean up stuff from obsolete/faulty tasks:
|
|
- name: Remove virtiofs service
|
|
file:
|
|
path: /etc/systemd/system/virtiofs@.service
|
|
state: absent
|
|
|
|
- name: Fix mount point permissions and owner
|
|
file:
|
|
path: "{{ item }}"
|
|
mode: '0755'
|
|
owner: root
|
|
group: root
|
|
loop:
|
|
- /srv/samba
|
|
- /srv/samba/schools
|
|
- /srv/samba/schools/default-school
|
|
|
|
- name: Fix unattended-upgrades
|
|
ansible.builtin.copy:
|
|
dest: /etc/apt/apt.conf.d/20auto-upgrades
|
|
content: |
|
|
APT::Periodic::Update-Package-Lists "1";
|
|
APT::Periodic::Unattended-Upgrade "1";
|
|
|
|
## bullseye fixes:
|
|
- name: Add bookworm firmware repository if needed
|
|
apt_repository:
|
|
repo: deb http://deb.debian.org/debian/ bookworm non-free-firmware
|
|
state: present
|
|
update_cache: true
|
|
when: >
|
|
ansible_board_vendor == "LENOVO" and
|
|
ansible_board_name == "32CB" and
|
|
ansible_distribution_release == "bullseye"
|
|
|
|
- name: upgrade non-free-firmware packages
|
|
apt:
|
|
upgrade: true
|
|
autoremove: true
|
|
autoclean: true
|
|
when: >
|
|
ansible_board_vendor == "LENOVO" and
|
|
ansible_board_name == "32CB" and
|
|
ansible_distribution_release == "bullseye"
|