mirror of
https://github.com/gjkcz/ansible-void.git
synced 2024-11-26 01:48:51 +01:00
Emil Miler
5fe0a398f4
Most PCs have an AMD GPU, but some replacements only have Intel. The intel-specific packages can later be excluded, albeit it doesn't hurt to have them installed. Intel-only hosts: - MU02 - MU03
291 lines
6.3 KiB
YAML
291 lines
6.3 KiB
YAML
---
|
|
- name: SSH
|
|
hosts: all
|
|
tags: ssh
|
|
|
|
tasks:
|
|
- name: Ensure root ssh directory exists
|
|
file:
|
|
path: /root/.ssh
|
|
state: directory
|
|
|
|
- name: Import SSH keys
|
|
authorized_key:
|
|
user: root
|
|
key: '{{ item }}'
|
|
state: present
|
|
loop: '{{ ssh_keys }}'
|
|
|
|
|
|
- name: General
|
|
hosts: all
|
|
tags: general
|
|
|
|
tasks:
|
|
- name: Install services
|
|
community.general.xbps:
|
|
name:
|
|
- avahi
|
|
- chrony
|
|
state: present
|
|
|
|
- name: Enable services
|
|
community.general.runit:
|
|
name: '{{ item }}'
|
|
enabled: true
|
|
state: started
|
|
loop:
|
|
- avahi-daemon
|
|
- chronyd
|
|
|
|
- name: Disable unneeded services
|
|
community.general.runit:
|
|
name: '{{ item }}'
|
|
enabled: false
|
|
state: stopped
|
|
loop:
|
|
- wpa_supplicant
|
|
|
|
|
|
- name: Users
|
|
hosts: all
|
|
tags: users
|
|
|
|
tasks:
|
|
- name: Set bash as default shell for root
|
|
user:
|
|
name: root
|
|
shell: /bin/bash
|
|
|
|
- name: User student
|
|
user:
|
|
name: student
|
|
password: $6$7Z.h8Q6CO9AevdIp$8W2nuvD7ZqeXBO.Azsayx2tJ4L0KD44hOz5aNzpGPN/hUtaROvmY7aJ0x7Ie3CPawp6lV4ln2fHQQ7V5Yuy7k0
|
|
groups:
|
|
# Arduino serial access
|
|
- dialout
|
|
state: present
|
|
|
|
- name: Lock bash configuration files for student
|
|
# Can be removed after LDAP setup
|
|
file:
|
|
path: '{{ item }}'
|
|
owner: root
|
|
group: root
|
|
mode: 0644
|
|
state: touch
|
|
loop:
|
|
- /home/student/.bashrc
|
|
- /home/student/.bash_profile
|
|
|
|
- name: Disable SSH for user student
|
|
ansible.builtin.lineinfile:
|
|
path: "/etc/ssh/sshd_config"
|
|
line: "DenyUsers student"
|
|
create: true
|
|
|
|
|
|
- name: Software
|
|
hosts: all
|
|
tags: software
|
|
|
|
tasks:
|
|
- name: Add non-free repository
|
|
community.general.xbps:
|
|
name: void-repo-nonfree
|
|
state: present
|
|
|
|
- name: Upgrade all packages
|
|
community.general.xbps:
|
|
upgrade: true
|
|
|
|
- name: Install common packages
|
|
community.general.xbps:
|
|
name: '{{ xbps_install }}'
|
|
state: present
|
|
when: xbps_install
|
|
|
|
- name: Install video drivers
|
|
community.general.xbps:
|
|
name:
|
|
- mesa-dri
|
|
- vulkan-loader
|
|
- mesa-vulkan-radeon
|
|
- amdvlk
|
|
- xf86-video-amdgpu
|
|
- mesa-vaapi
|
|
- mesa-vdpau
|
|
- intel-video-accel
|
|
- mesa-vulkan-intel
|
|
|
|
- name: Recursively remove packages
|
|
community.general.xbps:
|
|
name: '{{ xbps_remove }}'
|
|
state: absent
|
|
recurse: true
|
|
when: xbps_remove
|
|
|
|
- name: Clear xbps cache
|
|
command: 'xbps-remove -O'
|
|
|
|
- name: Purge old kernels
|
|
command: 'vkpurge rm all'
|
|
|
|
|
|
- name: Gnome
|
|
hosts: all
|
|
tags:
|
|
- gnome
|
|
- software
|
|
|
|
handlers:
|
|
- name: Update dconf database
|
|
command: 'dconf update'
|
|
|
|
tasks:
|
|
- name: Install Gnome
|
|
community.general.xbps:
|
|
name:
|
|
- dbus
|
|
- gnome
|
|
- gdm
|
|
- xorg # Prevents a crash on some systems
|
|
- mesa-vdpau
|
|
- mesa-vaapi
|
|
- pipewire
|
|
state: present
|
|
|
|
- name: Enable services
|
|
community.general.runit:
|
|
name: '{{ item }}'
|
|
enabled: true
|
|
state: started
|
|
loop:
|
|
- dbus
|
|
- gdm
|
|
|
|
- name: Copy session cleanup script
|
|
copy:
|
|
src: 'files/session-cleanup.sh'
|
|
dest: '/etc/gdm/PostSession/Default'
|
|
mode: '0755'
|
|
|
|
- name: Enable autologin
|
|
copy:
|
|
src: 'files/desktop/autologin'
|
|
dest: '/etc/gdm/custom.conf'
|
|
notify: Update dconf database
|
|
|
|
- name: Ensure directories exist
|
|
file:
|
|
path: '{{item}}'
|
|
state: directory
|
|
loop:
|
|
- /etc/dconf/db/local.d
|
|
- /etc/dconf/db/local.d/locks
|
|
|
|
- name: Create user profile
|
|
copy:
|
|
src: 'files/desktop/profile/user'
|
|
dest: '/etc/dconf/profile/user'
|
|
|
|
- name: Copy configuration files
|
|
copy:
|
|
src: 'files/desktop/main'
|
|
dest: '/etc/dconf/db/local.d/main'
|
|
notify: Update dconf database
|
|
|
|
- name: Set screen timeout
|
|
template:
|
|
src: 'files/desktop/screensaver'
|
|
dest: '/etc/dconf/db/local.d/screensaver'
|
|
notify: Update dconf database
|
|
|
|
|
|
- name: PipeWire
|
|
hosts: all
|
|
tags: pipewire
|
|
|
|
tasks:
|
|
- name: Install PipeWire
|
|
community.general.xbps:
|
|
name:
|
|
- pipewire
|
|
- wireplumber
|
|
state: present
|
|
|
|
- name: Ensure configuration directories exist
|
|
file:
|
|
path: '/etc/pipewire/pipewire.conf.d/'
|
|
state: directory
|
|
|
|
- name: Copy PipeWire configuration
|
|
copy:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
loop:
|
|
- src: 'files/pipewire/pipewire.conf'
|
|
dest: '/etc/pipewire/pipewire.conf'
|
|
- src: 'files/pipewire/10-wireplumber.conf'
|
|
dest: '/etc/pipewire/pipewire.conf.d/10-wireplumber.conf'
|
|
|
|
- name: Symlink PipeWire to autostart
|
|
file:
|
|
src: '{{ item.src }}'
|
|
dest: '{{ item.dest }}'
|
|
state: link
|
|
loop:
|
|
- src: '/usr/share/applications/pipewire.desktop'
|
|
dest: '/etc/xdg/autostart/pipewire.desktop'
|
|
- src: '/usr/share/applications/pipewire-pulse.desktop'
|
|
dest: '/etc/xdg/autostart/pipewire-pulse.desktop'
|
|
|
|
|
|
- name: GRUB
|
|
hosts: all
|
|
tags: grub
|
|
|
|
handlers:
|
|
- name: grub-mkconfig
|
|
command: 'grub-mkconfig -o /boot/grub/grub.cfg'
|
|
|
|
tasks:
|
|
- name: Copy GRUB configuration
|
|
template:
|
|
src: 'files/grub/grub'
|
|
dest: '/etc/default/grub'
|
|
notify: grub-mkconfig
|
|
|
|
|
|
- name: Firefox
|
|
hosts: all
|
|
|
|
tasks:
|
|
- name: Ensure Firefox extensions folder exists
|
|
file:
|
|
path: "/usr/lib64/firefox/distribution/extensions"
|
|
state: directory
|
|
|
|
- name: Install firefox extensions
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: "/usr/lib64/firefox/distribution/extensions/"
|
|
loop:
|
|
- "files/firefox/uBlock0@raymondhill.net.xpi"
|
|
|
|
|
|
- name: Bakaláři
|
|
hosts: teachers
|
|
tags: bakalari
|
|
|
|
tasks:
|
|
- name: Create a desktop shortcut for Bakaláři
|
|
copy:
|
|
src: "{{ item.src }}"
|
|
dest: "{{ item.dest }}"
|
|
loop:
|
|
- src: "files/bakalari/bakalari.desktop"
|
|
dest: "/usr/share/applications/bakalari.desktop"
|
|
- src: "files/bakalari/bakalari.png"
|
|
dest: "/usr/share/icons/bakalari.png"
|