diff --git a/get_greenfoot_bluej.sh b/get_greenfoot_bluej.sh new file mode 100755 index 0000000..88e8510 --- /dev/null +++ b/get_greenfoot_bluej.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +srvpath=/var/www/html/javadev +mkdir -p $srvpath +rm -f $srvpath/* +cd $srvpath || exit 1 + +greenfoot=https://www.greenfoot.org/download/files/Greenfoot-linux-371.deb +bluej=https://www.bluej.org/download/files/BlueJ-linux-520.deb + +wget $greenfoot -O $srvpath/greenfoot.deb +wget $bluej -O $srvpath/bluej.deb + + diff --git a/get_msttcorefonts.sh b/get_msttcorefonts.sh new file mode 100755 index 0000000..9d2c944 --- /dev/null +++ b/get_msttcorefonts.sh @@ -0,0 +1,11 @@ +#!/bin/bash + + +mkdir -p /var/www/html/mscorefonts +rm -f /var/www/html/mscorefonts/* +cd /var/www/html/mscorefonts + +for i in andale32.exe arialb32.exe arial32.exe comic32.exe courie32.exe georgi32.exe impact32.exe times32.exe trebuc32.exe verdan32.exe webdin32.exe; do + wget https://downloads.sourceforge.net/corefonts/$i; +done + diff --git a/lmn-desktop.yml b/lmn-desktop.yml index e498ea8..ad38229 100644 --- a/lmn-desktop.yml +++ b/lmn-desktop.yml @@ -34,6 +34,10 @@ ## Local mirror for mscorefonts. Remove or leave empty to use no mirror: mirror_msfonts: http://netboot.qgm.lan/mscorefonts/ + + ## Local Mirror for Greenfoot and BlueJ. Leave empty to skip installation of bluej and greenfoot + mirror_javadev: http://netboot.qgm.lan/javadev/ + # Linbo Passwort rsyncsecret: Muster! diff --git a/qgm-desktop.yml b/qgm-desktop.yml new file mode 100644 index 0000000..bc3595f --- /dev/null +++ b/qgm-desktop.yml @@ -0,0 +1,48 @@ +## This playbook deploys a KDE desktop machine for LinuxMuster. +--- +- name: apply configuration to the machines + hosts: all + remote_user: ansible + become: yes + + vars: + domain: "{{ ansible_domain }}" + kerberize_uris: qgm.lan + apt_conf: Acquire::http::Proxy "http://netboot.qgm.lan:3142/"; + ntp_serv: server.qgm.lan + proxy: http://firewall.qgm.lan:3128 + no_proxy: firewall.qgm.lan, server.qgm.lan, qgm.lan + + ## PAM mount nextcloud, remove or leave empty to skip: + web_dav: https://wolke.qg-moessingen.de/remote.php/dav/files/%(USER) + + ## Local mirror for mscorefonts. Remove or leave empty to use no mirror: + mirror_msfonts: http://netboot.qgm.lan/mscorefonts/ + ## Local Mirror for Greenfoot and BlueJ + mirror_javadev: http://netboot.qgm.lan/javadev/ + + # Linbo Passwort + rsyncsecret: Muster! + ## Use grub-mkpasswd-pbkdf2: to calculate the password hash, this hash is for "geheim": + grub_pwd: 'grub.pbkdf2.sha512.10000.775CB8C7FDA6892B684049EC0257245BA886719264ED9CDB3A7543B3562CC71BA70DB31F3550586D1F41642B13AEF61857FE009AF891D0854A8383251C55119D.30056755AF00EA171069E591D3CA18A592C8C5DEC7E0DEE957AC23A51F58CC5E05231AC49674EC19F2BACAD7D510DF58A157840596F0247054C7FD42C5D43BE7' + nfs4: false + extra_pkgs: + - vim + - mc + - tmux + - console-setup + - krb5-user + - unattended-upgrades + - debconf-utils + - ctorrent + extra_pkgs_bpo: [] # [ linux-image-amd64 ] + + roles: + #- lmn_network + #- up2date_debian + #- lmn_sssd + #- lmn_mount + #- lmn_kde + - lmn_qgm ## school specific customization + #- lmn_printer + #- kerberize diff --git a/roles/lmn_qgm/files/qgm-breeze-sddm.tgz b/roles/lmn_qgm/files/qgm-breeze-sddm.tgz new file mode 100644 index 0000000..978f49d Binary files /dev/null and b/roles/lmn_qgm/files/qgm-breeze-sddm.tgz differ diff --git a/roles/lmn_qgm/files/qgm_background.jpg b/roles/lmn_qgm/files/qgm_background.jpg new file mode 100644 index 0000000..bf75ad5 Binary files /dev/null and b/roles/lmn_qgm/files/qgm_background.jpg differ diff --git a/roles/lmn_qgm/tasks/main.yml b/roles/lmn_qgm/tasks/main.yml new file mode 100644 index 0000000..9e91036 --- /dev/null +++ b/roles/lmn_qgm/tasks/main.yml @@ -0,0 +1,108 @@ +--- +- name: Preseed ttf-mscorefonts-installer + ansible.builtin.debconf: + name: ttf-mscorefonts-installer + question: msttcorefonts/dlurl + value: "{{ mirror_msfonts }}" + vtype: string + when: mirror_msfonts is defined and mirror_msfonts | length > 0 + +- name: Install desktop EDU packages and some more + apt: + name: + - curl + - git + - gitg + - gitk + - libnotify-bin ## needed for pwroff script + - neovim + - net-tools + - netcat-openbsd + - nmap + - tmux + - tree + - ttf-mscorefonts-installer + autoremove: true + state: latest + environment: + http_proxy: '' + + +- name: Make qgm share directory + file: + path: /usr/local/share/qgm + state: directory + mode: '0755' + owner: root + group: root + +- name: Copy qgm background + copy: + src: files/qgm_background.jpg + dest: /usr/local/share/qgm/qgm_background.jpg + mode: '0644' + owner: root + group: root + +- name: Entpacke qgm-breeze-sddm.tgz nach /usr/share/sddm/themes + unarchive: + src: files/qgm-breeze-sddm.tgz + dest: /usr/share/sddm/themes + +- name: Link /etc/alternatives/sddm-debian-theme nach /usr/share/sddm/themes/qgm-breeze/ + file: + src: /usr/share/sddm/themes/qgm-breeze/ + dest: /etc/alternatives/sddm-debian-theme + owner: root + group: root + state: link + +- name: Set mandatory KDE settings + ansible.builtin.copy: + dest: /etc/xdg/kdeglobals + content: | + [KDE][$i] + SingleClick=false + widgetStyle=breeze + + [KDE Action Restrictions][$i] + action/switch_user=false + action/lock_screen=false + action/start_new_session=false + + [Daemon][$i] + AutoLock=false + LockonResume=false + +- name: Download greenfoot/bluej + ansible.builtin.get_url: + url: "{{ mirror_javadev }}/{{ item }}" + dest: /tmp/{{ item }} + mode: '0400' + loop: + - bluej.deb + - greenfoot.deb + when: mirror_javadev is defined and mirror_javadev | length > 0 + + +- name: Install greenfoot/bluej + ansible.builtin.apt: + deb: "/tmp/{{ item }}" + loop: + - bluej.deb + - greenfoot.deb + when: mirror_javadev is defined and mirror_javadev | length > 0 + + +- name: Remove greenfoot/bluej debs + ansible.builtin.file: + path: "/tmp/{{ item }}" + state: absent + loop: + - bluej.deb + - greenfoot.deb + when: mirror_javadev is defined and mirror_javadev | length > 0 + + + + diff --git a/setup.vars b/setup.vars deleted file mode 100644 index a7e222b..0000000 --- a/setup.vars +++ /dev/null @@ -1,11 +0,0 @@ -# Ein Public Key für den Ansible Benutzer auf den Clients -ansible_ssh_pubkey: "Mein-Key" -# Das Passwort des Benutzers 'ansible' auf den Clients -ansible_client_pw: "insecure" -# Das global-admin Passwort, um den Domain Join durchzuführen -gapw: "Muster!" -# Der NTP Server, normalerweise der Server -ntp_server: "server.linuxmuster.lan" -# Der Branch dieses Repos, der für die Konfiguration der Clinets -# Verwendet werden soll -lmn_client_branch: "myschool"