From c0f18e93abf1e32c15e4d5836982d6e1aeaa7a2c Mon Sep 17 00:00:00 2001 From: Emil Miler Date: Mon, 24 Apr 2023 20:43:22 +0200 Subject: [PATCH] General rewrite This is a big rewrite of all playbooks and assets. We should probably split the playbooks into roles in the future. --- ansible.cfg | 3 + bakalari.yaml | 10 -- desktop.yaml | 62 ++++++++++ {gdm => files/desktop}/accessibility | 0 files/desktop/autologin | 3 + gdm/wallpaper => files/desktop/background | 0 {gdm => files/desktop}/dash | 0 files/desktop/jirka.jpg | Bin 0 -> 99117 bytes files/desktop/lock/background | 5 + {gdm => files/desktop}/login-screen | 0 {gdm => files/desktop}/profile | 0 {gdm => files/desktop}/screensaver-long | 0 {gdm => files/desktop}/screensaver-short | 0 files/{ => desktop}/wallpaper.jpg | Bin {repositories => files/repositories}/vscode | 0 firefox.yaml | 12 -- gnome-config.yaml | 46 -------- group_vars/all.yaml | 60 ++++++++++ halt.yaml | 8 -- hosts | 26 ++++- readme.md | 11 +- reboot.yaml | 8 ++ .../bakalari/files}/bakalari.desktop | 0 {files => roles/bakalari/files}/bakalari.png | Bin roles/bakalari/tasks/main.yaml | 10 ++ setup.yaml | 107 +++++++++++------- shudown.yaml | 8 ++ software.yaml | 87 +++++--------- ssh.yaml | 46 ++++++++ student.yaml | 12 -- update.yaml | 15 --- 31 files changed, 333 insertions(+), 206 deletions(-) create mode 100644 ansible.cfg delete mode 100644 bakalari.yaml create mode 100644 desktop.yaml rename {gdm => files/desktop}/accessibility (100%) create mode 100644 files/desktop/autologin rename gdm/wallpaper => files/desktop/background (100%) rename {gdm => files/desktop}/dash (100%) create mode 100644 files/desktop/jirka.jpg create mode 100644 files/desktop/lock/background rename {gdm => files/desktop}/login-screen (100%) rename {gdm => files/desktop}/profile (100%) rename {gdm => files/desktop}/screensaver-long (100%) rename {gdm => files/desktop}/screensaver-short (100%) rename files/{ => desktop}/wallpaper.jpg (100%) rename {repositories => files/repositories}/vscode (100%) delete mode 100644 firefox.yaml delete mode 100644 gnome-config.yaml create mode 100644 group_vars/all.yaml delete mode 100644 halt.yaml create mode 100644 reboot.yaml rename {files => roles/bakalari/files}/bakalari.desktop (100%) rename {files => roles/bakalari/files}/bakalari.png (100%) create mode 100644 roles/bakalari/tasks/main.yaml create mode 100644 shudown.yaml create mode 100644 ssh.yaml delete mode 100644 student.yaml delete mode 100644 update.yaml diff --git a/ansible.cfg b/ansible.cfg new file mode 100644 index 0000000..0eef626 --- /dev/null +++ b/ansible.cfg @@ -0,0 +1,3 @@ +[defaults] +inventory=hosts +forks=8 diff --git a/bakalari.yaml b/bakalari.yaml deleted file mode 100644 index 9bce5d4..0000000 --- a/bakalari.yaml +++ /dev/null @@ -1,10 +0,0 @@ -- name: Install Bakaláři - hosts: ucitelske - user: administrator - become: true - tasks: - - name: Create desktop shortcut for Bakaláři - copy: src={{ item.src }} dest={{ item.dest }} - with_items: - - { src: 'files/bakalari.desktop', dest: '/usr/share/applications/bakalari.desktop' } - - { src: 'files/bakalari.png', dest: '/usr/share/icons/bakalari.png' } diff --git a/desktop.yaml b/desktop.yaml new file mode 100644 index 0000000..d14a6a0 --- /dev/null +++ b/desktop.yaml @@ -0,0 +1,62 @@ +--- +- name: Gnome desktop setup + hosts: all + user: root + + tasks: + - name: Enable autologin + copy: + src: 'files/desktop/autologin' + dest: '/etc/gdm/custom.conf' + + - name: Pin applications to dash + copy: + src: 'files/desktop/dash' + dest: '/etc/dconf/db/local.d/dash' + + - name: Set wallpaper + copy: src={{ item.src }} dest={{ item.dest }} + with_items: + - { src: 'files/desktop/background', dest: '/etc/dconf/db/local.d/background' } + - { src: 'files/desktop/wallpaper.jpg', dest: '/usr/local/share/wallpaper.jpg' } + + - name: Remove old wallpaper config + # This can be deleted in the future + file: + path: '/etc/dconf/db/local.d/wallpaper' + state: absent + + - name: Lock desktop wallpaper settings + copy: + src: 'files/desktop/lock/background' + dest: '/etc/dconf/db/local.d/locks/background' + + - name: GDM usernames profile + copy: + src: 'files/desktop/profile' + dest: '/etc/dconf/profile/gdm' + + - name: GDM login screen configuration - don't show all users + copy: + src: 'files/desktop/login-screen' + dest: '/etc/dconf/db/gdm.d/login-screen' + + - name: GDM login screen configuration - disable accessibility + # Not working, perhaps broken GDM + copy: + src: 'files/desktop/accessibility' + dest: '/etc/dconf/db/gdm.d/accessibility' + + - name: GDM screensaver with short delay + copy: + src: 'files/desktop/screensaver-short' + dest: '/etc/dconf/db/local.d/screensaver' + + - name: GDM screensaver with long delay + when: inventory_hostname in groups['teacher:children'] + copy: + src: 'files/desktop/screensaver-long' + dest: '/etc/dconf/db/local.d/screensaver' + + - name: Update dconf database + command: "dconf update" diff --git a/gdm/accessibility b/files/desktop/accessibility similarity index 100% rename from gdm/accessibility rename to files/desktop/accessibility diff --git a/files/desktop/autologin b/files/desktop/autologin new file mode 100644 index 0000000..0255cba --- /dev/null +++ b/files/desktop/autologin @@ -0,0 +1,3 @@ +[daemon] +AutomaticLoginEnable=True +AutomaticLogin=student diff --git a/gdm/wallpaper b/files/desktop/background similarity index 100% rename from gdm/wallpaper rename to files/desktop/background diff --git a/gdm/dash b/files/desktop/dash similarity index 100% rename from gdm/dash rename to files/desktop/dash diff --git a/files/desktop/jirka.jpg b/files/desktop/jirka.jpg new file mode 100644 index 0000000000000000000000000000000000000000..66c555f4bf339fceda80a36cfb7accb0c30d2a79 GIT binary patch literal 99117 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

GS*juIu~H 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 literal 0 HcmV?d00001 diff --git a/files/desktop/lock/background b/files/desktop/lock/background new file mode 100644 index 0000000..80309b5 --- /dev/null +++ b/files/desktop/lock/background @@ -0,0 +1,5 @@ +# Lock desktop background settings +/org/gnome/desktop/background/picture-uri +/org/gnome/desktop/background/picture-options +/org/gnome/desktop/background/primary-color +/org/gnome/desktop/background/secondary-color diff --git a/gdm/login-screen b/files/desktop/login-screen similarity index 100% rename from gdm/login-screen rename to files/desktop/login-screen diff --git a/gdm/profile b/files/desktop/profile similarity index 100% rename from gdm/profile rename to files/desktop/profile diff --git a/gdm/screensaver-long b/files/desktop/screensaver-long similarity index 100% rename from gdm/screensaver-long rename to files/desktop/screensaver-long diff --git a/gdm/screensaver-short b/files/desktop/screensaver-short similarity index 100% rename from gdm/screensaver-short rename to files/desktop/screensaver-short diff --git a/files/wallpaper.jpg b/files/desktop/wallpaper.jpg similarity index 100% rename from files/wallpaper.jpg rename to files/desktop/wallpaper.jpg diff --git a/repositories/vscode b/files/repositories/vscode similarity index 100% rename from repositories/vscode rename to files/repositories/vscode diff --git a/firefox.yaml b/firefox.yaml deleted file mode 100644 index ff9ef41..0000000 --- a/firefox.yaml +++ /dev/null @@ -1,12 +0,0 @@ -- name: Firefox configuration - hosts: all - user: administrator - become: true - - tasks: - - name: Firefox addons folder - file: path=/usr/lib64/firefox/distribution/extensions state=directory - - name: Firefox addons installation - copy: - src: 'files/firefox-addons/uBlock0@raymondhill.net.xpi' - dest: '/usr/lib64/firefox/distribution/extensions/uBlock0@raymondhill.net.xpi' diff --git a/gnome-config.yaml b/gnome-config.yaml deleted file mode 100644 index d1ef197..0000000 --- a/gnome-config.yaml +++ /dev/null @@ -1,46 +0,0 @@ -- name: GJK GNOME configuration - hosts: all - user: administrator - become: true - - tasks: - - name: Pin applications to dash - copy: - src: 'gdm/dash' - dest: '/etc/dconf/db/local.d/dash' - - - name: Set wallpaper - copy: src={{ item.src }} dest={{ item.dest }} - with_items: - - { src: 'gdm/wallpaper', dest: '/etc/dconf/db/local.d/wallpaper' } - - { src: 'files/wallpaper.jpg', dest: '/usr/local/share/wallpaper.jpg' } - - - name: GDM usernames profile - copy: - src: 'gdm/profile' - dest: '/etc/dconf/profile/gdm' - - - name: GDM login screen configuration - don't show all users - copy: - src: 'gdm/login-screen' - dest: '/etc/dconf/db/gdm.d/login-screen' - - - name: GDM login screen configuration - disable accessibility - # Not working, perhaps broken GDM - copy: - src: 'gdm/accessibility' - dest: '/etc/dconf/db/gdm.d/accessibility' - - - name: GDM screensaver with short delay - copy: - src: 'gdm/screensaver-short' - dest: '/etc/dconf/db/local.d/screensaver' - - - name: GDM screensaver with long delay - when: inventory_hostname in groups['ucitelske'] - copy: - src: 'gdm/screensaver-long' - dest: '/etc/dconf/db/local.d/screensaver' - - - name: Update dconf database - command: "dconf update" diff --git a/group_vars/all.yaml b/group_vars/all.yaml new file mode 100644 index 0000000..ee3fd72 --- /dev/null +++ b/group_vars/all.yaml @@ -0,0 +1,60 @@ +--- +ssh_keys: + - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEm981GRiUIsp8e4bTDv+d9SyHfQ8P18W5oovgmAfnip em@x210 + - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDqmyaaIqRU9hx8PxRnIqe/pRANIxrEEscuMWrHZF1yh snowflake@flakeX230 + +dnf_install: + # Domain join requirements + # - sssd + # - oddjob + # - oddjob-mkhomedir + # - adcli + # - samba-common-tools + # General + - git + - code + - gcc-c++ + - guile + - valgrind + - htop + - python3-idle + - texstudio + - screen + - tmux + - vim + - emacs + # Web Browsers + - firefox + # Multimedia + - celluloid + - audacity + - gimp + - inkscape + - kdenlive + - shotcut + - krita + - mypaint + # Multimedia codecs + - ffmpeg-libs + # CAD + - freecad + - kicad + - openscad + - prusa-slicer + # Databases + - sqlitebrowser + # Fun & games + - sl + - cowsay + - figlet + - asciiquarium + - cbonsai + - cmatrix + - openarena + - frozen-bubble +dnf_remove: + - john + - chromium +flatpak_install: + - cc.arduino.arduinoide +flatpak_remove: diff --git a/halt.yaml b/halt.yaml deleted file mode 100644 index 0cc10fb..0000000 --- a/halt.yaml +++ /dev/null @@ -1,8 +0,0 @@ -- name: Shutdown all machines - hosts: all - user: administrator - become: true - - tasks: - - name: Unconditionally shut down the machine with all defaults - community.general.shutdown: diff --git a/hosts b/hosts index 2fb6f8f..9ad23dc 100644 --- a/hosts +++ b/hosts @@ -1,5 +1,20 @@ -[PoV] -VU00.local +[pov:children] +students_pov +teacher_pov + +[pom:children] +students_pom +teacher_pom + +[teacher:children] +teacher_pov +teacher_pom + +[students:children] +students_pov +students_pom + +[students_pov] VU01.local VU02.local VU03.local @@ -16,8 +31,7 @@ VU13.local VU14.local VU15.local -[PoM] -MU01.local +[students_pom] MU02.local MU03.local MU04.local @@ -36,6 +50,8 @@ MU16.local MU17.local MU18.local -[ucitelske] +[teacher_pov] VU00.local + +[teacher_pom] MU01.local diff --git a/readme.md b/readme.md index c95e3d5..7420909 100644 --- a/readme.md +++ b/readme.md @@ -3,7 +3,16 @@ These are all files for machine management at GJK via Ansible. Push your SSH keys to all machines to the `administrator` user. Here is a sample playbook execution. ``` -ansible-playbook -i hosts -l PoM --key-file ~/.ssh/keys/gjk-ansible -K update.yaml +ansible-playbook all setup.yaml +ansible-playbook all --key-file ~/.ssh/keys/gjk-ansible setup.yaml +``` + +You shoud laso setup your ssh, eg.: + +``` +Host VU* MU* + User root + IdentityFile ~/.ssh/keys/gjk-ansible ``` GDM configuration can be found at . diff --git a/reboot.yaml b/reboot.yaml new file mode 100644 index 0000000..ef718e8 --- /dev/null +++ b/reboot.yaml @@ -0,0 +1,8 @@ +--- +- name: Reboot all machines + hosts: all + user: root + + tasks: + - name: Reboot all machines + ansible.builtin.reboot: diff --git a/files/bakalari.desktop b/roles/bakalari/files/bakalari.desktop similarity index 100% rename from files/bakalari.desktop rename to roles/bakalari/files/bakalari.desktop diff --git a/files/bakalari.png b/roles/bakalari/files/bakalari.png similarity index 100% rename from files/bakalari.png rename to roles/bakalari/files/bakalari.png diff --git a/roles/bakalari/tasks/main.yaml b/roles/bakalari/tasks/main.yaml new file mode 100644 index 0000000..06ff19a --- /dev/null +++ b/roles/bakalari/tasks/main.yaml @@ -0,0 +1,10 @@ +--- +- name: Create a desktop shortcut for Bakaláři + copy: + src: "{{ item.src }}" + dest: "{{ item.dest }}" + loop: + - src: "files/bakalari.desktop" + dest: "/usr/share/applications/bakalari.desktop" + - src: "files/bakalari.png" + dest: "/usr/share/icons/bakalari.png" diff --git a/setup.yaml b/setup.yaml index 4589f75..4ba7f38 100644 --- a/setup.yaml +++ b/setup.yaml @@ -1,70 +1,95 @@ -- name: GJK Fedora setting up script +--- +- name: GJK client setup hosts: all - user: administrator - become: true + user: root + tasks: - - name: Importing RPM Fusion (free) key + # Repositories + - name: Import RPM Fusion (free) key ansible.builtin.rpm_key: state: present key: https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-free-fedora-2020 - - name: Importing RPM Fusion (non-free) key + + - name: Import RPM Fusion (non-free) key ansible.builtin.rpm_key: state: present key: https://rpmfusion.org/keys?action=AttachFile&do=get&target=RPM-GPG-KEY-rpmfusion-nonfree-fedora-2020 - - name: Importing Microsoft VS Code key + + - name: Import Microsoft VS Code key ansible.builtin.rpm_key: state: present key: https://packages.microsoft.com/keys/microsoft.asc + - name: Activate RPM Fusion repository dnf: name: - - https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ansible_distribution_major_version}}.noarch.rpm - - https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ansible_distribution_major_version}}.noarch.rpm + - https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-{{ ansible_distribution_major_version }}.noarch.rpm + - https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-{{ ansible_distribution_major_version }}.noarch.rpm state: present + - name: Activate VS Code repository copy: - src: repositories/vscode + src: files/repositories/vscode dest: /etc/yum.repos.d/vscode.repo - - name: Update system + + + # Flatpak + - name: Enable flathub repo + command: "{{ item }}" + loop: "{{ commands }}" + vars: + commands: + - "flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo" + - "flatpak remote-modify --enable flathub" + + + - name: Upgrade packages dnf: + update_cache: true name: "*" state: latest - - name: Boot Windows by default (PoV) - when: inventory_hostname in groups['PoV'] - command: "grub2-set-default \"Windows 8 (on /dev/sda1)\"" - - name: Boot Windows by default (PoM) - when: inventory_hostname in groups['PoM'] - command: "grub2-set-default \"Windows Boot Manager (on /dev/nvme0n1p1)\"" - - name: Add Czech keyboard layout - command: "localectl set-x11-keymap us,cz" + - name: Install NVIDIA drivers - when: inventory_hostname in groups['PoV'] dnf: name: - akmod-nvidia state: present - - name: Add flathub repo - command: "flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo" - - name: Enable flathub repo - command: "flatpak remote-modify --enable flathub" - - name: Create Administrator user + when: inventory_hostname in groups['pov:children'] + + - name: Set default boot option to Windows + command: "grub2-set-default \"{{ default_boot_option }}\"" + vars: + default_boot_option: >- + {% if inventory_hostname in groups['pov:children'] %} + Windows 8 (on /dev/sda1) + {% elif inventory_hostname in groups['pom:children'] %} + Windows Boot Manager (on /dev/nvme0n1p1) + {% endif %} + when: + - inventory_hostname in groups['pov:children'] + - inventory_hostname in groups['pom:children'] + + - name: Add Czech keyboard layout + command: "localectl set-x11-keymap us,cz" + + # Firefox + - name: Ensure Firefox addons folder exists + file: + path: /usr/lib64/firefox/distribution/extensions + state: directory + - name: Install firefox addons + copy: + src: "{{ item }}" + dest: "/usr/lib64/firefox/distribution/extensions/" + loop: + - "files/firefox-addons/uBlock0@raymondhill.net.xpi" + + - name: Setup user student user: - name: administrator - password: "$6$7BN9WWJY2XJuixhs$tirH/J9WV8HX9tf9J7DVFEdYSt0UA6N2TGu0Exih0fIAYHA/RDJPpTgGbYtxw6You4THNpYoFNiRO.HVESkRd0" - # generovat heslo pomocí `mkpasswd --method=sha-512` + name: student + password: $6$7Z.h8Q6CO9AevdIp$8W2nuvD7ZqeXBO.Azsayx2tJ4L0KD44hOz5aNzpGPN/hUtaROvmY7aJ0x7Ie3CPawp6lV4ln2fHQQ7V5Yuy7k0 groups: - - wheel - - dialout + - dialout # Arduino serial access state: present - #- name: Update student user - # user: - # name: student - # groups: - # - wheel - # - dialout - # state: present - # - name: Remove student user - # user: - # name: student - # state: absent - # remove: true + # state: absent + # remove: true diff --git a/shudown.yaml b/shudown.yaml new file mode 100644 index 0000000..0eba36d --- /dev/null +++ b/shudown.yaml @@ -0,0 +1,8 @@ +--- +- name: Shutdown all machines + hosts: all + user: root + + tasks: + - name: Shutting down + community.general.shutdown: diff --git a/software.yaml b/software.yaml index e43fd6c..59e2ae6 100644 --- a/software.yaml +++ b/software.yaml @@ -1,66 +1,41 @@ -- name: GJK Fedora software setup +--- +- name: Software setup hosts: all - user: administrator - become: true + user: root + + handlers: + - name: Dependency cleanup + ansible.builtin.dnf: + autoremove: true tasks: + - name: Upgrade packages + ansible.builtin.dnf: + update_cache: true + name: "*" + state: latest + - name: Install applications - dnf: - name: - # General - - git - - code - - gcc-c++ - - guile - - valgrind - - htop - - python3-idle - - texstudio - - screen - - tmux - - vim - - emacs - # Multimedia - - audacity - - gimp - - inkscape - - kdenlive - - shotcut - - krita - - mypaint - - celluloid - # CAD - - freecad - - kicad - - prusa-slicer - # Multimedia codecs - - ffmpeg-libs - # Domain join requirements - - sssd - - oddjob - - oddjob-mkhomedir - - adcli - - samba-common-tools - # Fun - - sl - - cowsay - - figlet - # Games - #- openarena + ansible.builtin.dnf: + name: "{{ dnf_install }}" state: present + when: dnf_install - - name: Remove unused applications - dnf: - name: - - openarena + - name: Remove applications + ansible.builtin.dnf: + name: "{{ dnf_remove }}" state: absent + when: dnf_remove + notify: Dependency cleanup - - name: Dependency cleanup - dnf: - autoremove: yes - - - name: Install required apps from flatpak + - name: Install apps from Flatpak community.general.flatpak: - name: - - cc.arduino.arduinoide + name: "{{ flatpak_install }}" state: present + when: flatpak_install + + - name: Remove apps from Flatpak + community.general.flatpak: + name: "{{ flatpak_remove }}" + state: absent + when: flatpak_remove diff --git a/ssh.yaml b/ssh.yaml new file mode 100644 index 0000000..75a4f09 --- /dev/null +++ b/ssh.yaml @@ -0,0 +1,46 @@ +--- +- name: Reconfigure old ssh to new config + hosts: all + user: root + + handlers: + - name: restart ssh + systemd: + name: sshd + state: restarted + + tasks: + - name: Ensure root ssh directory exists + file: + path: /root/.ssh + state: directory + owner: root + group: root + mode: '0700' + + - name: Ensure authorized_keys file exists + file: + path: /root/.ssh/authorized_keys + state: touch + owner: root + group: root + mode: '0600' + + - name: Purge old authorized_keys file + shell: "echo '' > /root/.ssh/authorized_keys" + + - name: Import new SSH keys + authorized_key: + user: root + key: "{{ item }}" + state: present + loop: "{{ ssh_keys }}" + + - name: Enable Root Login + lineinfile: + dest: /etc/ssh/sshd_config + regexp: '^PermitRootLogin' + line: "PermitRootLogin prohibit-password" + state: present + notify: + - restart ssh diff --git a/student.yaml b/student.yaml deleted file mode 100644 index 7ad7580..0000000 --- a/student.yaml +++ /dev/null @@ -1,12 +0,0 @@ -- name: GJK Fedora setting up script - hosts: all - user: administrator - become: true - tasks: - - name: Update student user - user: - name: student - password: $6$7Z.h8Q6CO9AevdIp$8W2nuvD7ZqeXBO.Azsayx2tJ4L0KD44hOz5aNzpGPN/hUtaROvmY7aJ0x7Ie3CPawp6lV4ln2fHQQ7V5Yuy7k0 - groups: - - dialout - state: present diff --git a/update.yaml b/update.yaml deleted file mode 100644 index 13b8850..0000000 --- a/update.yaml +++ /dev/null @@ -1,15 +0,0 @@ -- name: GJK Fedora update script - hosts: all - user: administrator - become: true - tasks: - - name: Update system - dnf: - name: "*" - state: latest - - name: Boot Windows by default (PoV) - when: inventory_hostname in groups['PoV'] - command: "grub2-set-default \"Windows 8 (on /dev/sda1)\"" - - name: Boot Windows by default (PoM) - when: inventory_hostname in groups['PoM'] - command: "grub2-set-default \"Windows Boot Manager (on /dev/nvme0n1p1)\""