mirror of
https://github.com/gjkcz/ansible-void.git
synced 2024-11-24 09:15:59 +01:00
Initial commit
This commit is contained in:
commit
d88ed5f3d2
5
ansible.cfg
Normal file
5
ansible.cfg
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[defaults]
|
||||||
|
inventory = hosts
|
||||||
|
remote_user = root
|
||||||
|
forks = 8
|
||||||
|
interpreter_python = /usr/bin/python3
|
8
files/bakalari/bakalari.desktop
Normal file
8
files/bakalari/bakalari.desktop
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Bakaláři
|
||||||
|
Exec=/usr/bin/firefox https://dochazka.gjk.cz/login
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
Categories=Utility;
|
||||||
|
Icon=/usr/share/icons/bakalari.png
|
BIN
files/bakalari/bakalari.png
Normal file
BIN
files/bakalari/bakalari.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
3
files/desktop/autologin
Normal file
3
files/desktop/autologin
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[daemon]
|
||||||
|
AutomaticLogin=student
|
||||||
|
AutomaticLoginEnable=True
|
17
files/desktop/main
Normal file
17
files/desktop/main
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
[org/gnome/desktop/input-sources]
|
||||||
|
sources = [('xkb', 'us'), ('xkb', 'cz')]
|
||||||
|
|
||||||
|
[org/gnome/desktop/a11y]
|
||||||
|
always-show-universal-access-status = false
|
||||||
|
|
||||||
|
[org/gnome/shell]
|
||||||
|
favorite-apps = ['firefox.desktop', 'org.gnome.Console.desktop', 'org.gnome.Nautilus.desktop']
|
||||||
|
|
||||||
|
[org/gnome/login-screen]
|
||||||
|
disable-user-list = true
|
||||||
|
|
||||||
|
[org/gnome/desktop/interface]
|
||||||
|
gtk-theme = 'Adwaita-dark'
|
||||||
|
|
||||||
|
[org/gnome/settings-daemon/plugins]
|
||||||
|
sleep-inactive-ac-timeout = 0
|
2
files/desktop/profile/user
Normal file
2
files/desktop/profile/user
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
user-db:user
|
||||||
|
system-db:local
|
8
files/desktop/screensaver
Normal file
8
files/desktop/screensaver
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[org/gnome/desktop/session]
|
||||||
|
# Number of seconds of inactivity before the screen goes blank
|
||||||
|
# Set to 0 seconds if you want to deactivate the screensaver.
|
||||||
|
idle-delay=uint32 {{ timeout_blank }}
|
||||||
|
|
||||||
|
[org/gnome/desktop/screensaver]
|
||||||
|
# Number of seconds after the screen is blank before locking the screen
|
||||||
|
lock-delay=uint32 {{ timeout_lock }}
|
BIN
files/firefox/uBlock0@raymondhill.net.xpi
Normal file
BIN
files/firefox/uBlock0@raymondhill.net.xpi
Normal file
Binary file not shown.
22
files/grub/grub
Normal file
22
files/grub/grub
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# Configuration file for GRUB.
|
||||||
|
#
|
||||||
|
GRUB_DEFAULT=2
|
||||||
|
#GRUB_HIDDEN_TIMEOUT=0
|
||||||
|
#GRUB_HIDDEN_TIMEOUT_QUIET=false
|
||||||
|
GRUB_TIMEOUT={{ grub_timeout }}
|
||||||
|
GRUB_DISTRIBUTOR="Void"
|
||||||
|
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4 net.ifnames=0"
|
||||||
|
# Uncomment to use basic console
|
||||||
|
GRUB_TERMINAL_INPUT=console
|
||||||
|
# Uncomment to disable graphical terminal
|
||||||
|
GRUB_TERMINAL_OUTPUT=console
|
||||||
|
#GRUB_BACKGROUND=/usr/share/void-artwork/splash.png
|
||||||
|
#GRUB_GFXMODE=1920x1080x32
|
||||||
|
#GRUB_DISABLE_LINUX_UUID=true
|
||||||
|
#GRUB_DISABLE_RECOVERY=true
|
||||||
|
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
|
||||||
|
# modes only. Entries specified as foreground/background.
|
||||||
|
#GRUB_COLOR_NORMAL="light-blue/black"
|
||||||
|
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
|
||||||
|
GRUB_DISABLE_OS_PROBER=false
|
61
group_vars/all.yaml
Normal file
61
group_vars/all.yaml
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
timeout_blank: 1800
|
||||||
|
timeout_lock: 30
|
||||||
|
grub_timeout: 5
|
||||||
|
|
||||||
|
ssh_keys:
|
||||||
|
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEm981GRiUIsp8e4bTDv+d9SyHfQ8P18W5oovgmAfnip em@x210
|
||||||
|
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDqmyaaIqRU9hx8PxRnIqe/pRANIxrEEscuMWrHZF1yh snowflake@flakeX230
|
||||||
|
|
||||||
|
xbps_install:
|
||||||
|
# General
|
||||||
|
- htop
|
||||||
|
- screen
|
||||||
|
- tmux
|
||||||
|
- vim
|
||||||
|
- nano
|
||||||
|
- curl
|
||||||
|
- wget
|
||||||
|
# Software development
|
||||||
|
- git
|
||||||
|
- gcc
|
||||||
|
- guile
|
||||||
|
- valgrind
|
||||||
|
- emacs
|
||||||
|
- vscode
|
||||||
|
- arduino
|
||||||
|
- arduino-cli
|
||||||
|
- idle-python3
|
||||||
|
# Web Browsers
|
||||||
|
- firefox
|
||||||
|
# Documents
|
||||||
|
- libreoffice
|
||||||
|
- texstudio
|
||||||
|
- texlive-bin
|
||||||
|
# Multimedia
|
||||||
|
- ffmpeg
|
||||||
|
- celluloid
|
||||||
|
- audacity
|
||||||
|
- gimp
|
||||||
|
- inkscape
|
||||||
|
- kdenlive
|
||||||
|
- shotcut
|
||||||
|
- krita
|
||||||
|
- mypaint
|
||||||
|
# CAD
|
||||||
|
- freecad
|
||||||
|
- openscad
|
||||||
|
- PrusaSlicer
|
||||||
|
# Databases
|
||||||
|
- sqlitebrowser
|
||||||
|
# Fun & games
|
||||||
|
- neofetch
|
||||||
|
- sl
|
||||||
|
- cowsay
|
||||||
|
- ponysay
|
||||||
|
- figlet
|
||||||
|
- asciiquarium
|
||||||
|
- cbonsai
|
||||||
|
- cmatrix
|
||||||
|
# - openarena
|
||||||
|
xbps_remove:
|
2
group_vars/pom.yaml
Normal file
2
group_vars/pom.yaml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
grub_timeout: 8
|
3
group_vars/teachers.yml
Normal file
3
group_vars/teachers.yml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
timeout_blank: 1800
|
||||||
|
timeout_lock: 10
|
57
hosts
Normal file
57
hosts
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
[students_pov]
|
||||||
|
VU01.local
|
||||||
|
VU02.local
|
||||||
|
VU03.local
|
||||||
|
VU04.local
|
||||||
|
VU05.local
|
||||||
|
VU06.local
|
||||||
|
VU07.local
|
||||||
|
VU08.local
|
||||||
|
VU09.local
|
||||||
|
VU10.local
|
||||||
|
VU11.local
|
||||||
|
VU12.local
|
||||||
|
VU13.local
|
||||||
|
VU14.local
|
||||||
|
VU15.local
|
||||||
|
|
||||||
|
[students_pom]
|
||||||
|
MU02.local
|
||||||
|
MU03.local
|
||||||
|
MU04.local
|
||||||
|
MU05.local
|
||||||
|
MU06.local
|
||||||
|
MU07.local
|
||||||
|
MU08.local
|
||||||
|
MU09.local
|
||||||
|
MU10.local
|
||||||
|
MU11.local
|
||||||
|
MU12.local
|
||||||
|
MU13.local
|
||||||
|
MU14.local
|
||||||
|
MU15.local
|
||||||
|
MU16.local
|
||||||
|
MU17.local
|
||||||
|
MU18.local
|
||||||
|
|
||||||
|
[teacher_pov]
|
||||||
|
VU00.local
|
||||||
|
|
||||||
|
[teacher_pom]
|
||||||
|
MU01.local
|
||||||
|
|
||||||
|
[pov:children]
|
||||||
|
students_pov
|
||||||
|
teacher_pov
|
||||||
|
|
||||||
|
[pom:children]
|
||||||
|
students_pom
|
||||||
|
teacher_pom
|
||||||
|
|
||||||
|
[teachers:children]
|
||||||
|
teacher_pov
|
||||||
|
teacher_pom
|
||||||
|
|
||||||
|
[students:children]
|
||||||
|
students_pov
|
||||||
|
students_pom
|
7
reboot.yaml
Normal file
7
reboot.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: Reboot all machines
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Reboot all machines
|
||||||
|
ansible.builtin.reboot:
|
230
setup.yaml
Normal file
230
setup.yaml
Normal file
@ -0,0 +1,230 @@
|
|||||||
|
---
|
||||||
|
- name: SSH
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Install Software
|
||||||
|
community.general.xbps:
|
||||||
|
name:
|
||||||
|
- avahi
|
||||||
|
- chrony
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Enable Avahi service
|
||||||
|
community.general.runit:
|
||||||
|
name: avahi-daemon
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: Enable Chrony service
|
||||||
|
community.general.runit:
|
||||||
|
name: chronyd
|
||||||
|
enabled: true
|
||||||
|
state: started
|
||||||
|
|
||||||
|
- name: Disable wpa_supplicant
|
||||||
|
community.general.runit:
|
||||||
|
name: wpa_supplicant
|
||||||
|
enabled: false
|
||||||
|
state: stopped
|
||||||
|
|
||||||
|
- name: Disable redundant TTYs
|
||||||
|
community.general.runit:
|
||||||
|
name: '{{ item }}'
|
||||||
|
enabled: false
|
||||||
|
state: stopped
|
||||||
|
loop:
|
||||||
|
- agetty-tty3
|
||||||
|
- agetty-tty4
|
||||||
|
- agetty-tty5
|
||||||
|
- agetty-tty6
|
||||||
|
|
||||||
|
|
||||||
|
- name: Users
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
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: 644
|
||||||
|
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
|
||||||
|
|
||||||
|
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 packages
|
||||||
|
community.general.xbps:
|
||||||
|
name: '{{ xbps_install }}'
|
||||||
|
state: present
|
||||||
|
when: xbps_install
|
||||||
|
|
||||||
|
- name: Recursively remove packages
|
||||||
|
community.general.xbps:
|
||||||
|
name: '{{ xbps_remove }}'
|
||||||
|
state: absent
|
||||||
|
recurse: true
|
||||||
|
when: xbps_remove
|
||||||
|
|
||||||
|
|
||||||
|
- name: Gnome
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
handlers:
|
||||||
|
- name: Update dconf database
|
||||||
|
command: 'dconf update'
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Install Gnome
|
||||||
|
community.general.xbps:
|
||||||
|
name:
|
||||||
|
- dbus
|
||||||
|
- gnome
|
||||||
|
- gnome-apps
|
||||||
|
- 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: 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: GRUB
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
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"
|
7
shudown.yaml
Normal file
7
shudown.yaml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
- name: Shutdown all machines
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Shutting down
|
||||||
|
community.general.shutdown:
|
Loading…
Reference in New Issue
Block a user