#!/bin/bash # Script zur Installation einer ITZKS-Workstation (z.B. Notebooks am Katharineum) adduser locadm adduser locadm sudo lvextend -L 20G /dev/vg_system/root resize2fs /dev/vg_system/root invoke-rc.d fetch-ldap-cert start touch /etc/apt/sources.list.d/itzks.list echo "deb http://packages.it-zukunft-schule.de/debian jessie main contrib non-free" >> /etc/apt/sources-list.d/itzks.list echo "deb http://packages.it-zukunft-schule.de/debian jessie-backports main contrib non-free" >> /etc/apt/sources-list.d/itzks.listapt-get update apt-get update apt-get install itzks-keyring && apt-get update && apt-get install itzks-systems-common apt-get update apt-get install x2go-keyring deb-multimedia-keyring && apt-get update itzks-systems.do_preseed apt-get install itzks-systems-workstation dpkg-reconfigure kdm while true; do read -p "Verfügt der Rechner über ein DVD-Laufwerk bzw. sollen DVDs abgespielt werden können? [j/n] " yn case $yn in [Jj]* ) apt install libdvdcss2; break;; [Nn]* ) exit;; * ) echo "Bitte antworte mit Ja oder Nein.";; esac done apt-get install libnss-mdns #################### read -p '''! Änderung in Network-Interfaces Ändere die bestehenden Einträge für eth0 auf allow-hotplug eth0 #NetworkManager #iface eth0 inet dhcp Starte nun den Editor mit [Enter] ''' editor /etc/network/interfaces #################### read -p '''! Änderung in NFS-Common Ändere die Datei /etc/default/nfs-common am Ende: NEED_GSSD= (leer lassen) Starte nun den Editor mit [Enter] ''' editor /etc/default/nfs-common ################### read -p '''! Aktivieren von jessie, jessie-updates, jessie-security Parameter wie folgt setzen: Unattended-Upgrade::MinimalSteps "true"; Unattended-Upgrade::InstallOnShutdown "false"; Unattended-Upgrade::Automatic-Reboot "false"; Starte nun den Editor mit [Enter] ''' editor /etc/apt/apt.conf.d/50unattended-upgrades ################## echo '! Java installieren...' apt-get install oracle-java8-bin oracle-java8-jre oracle-java8-plugin update-java-alternatives --jre --set java-8-oracle update-java-alternatives --plugin --set java-8-oracle ################### read -p '''! Update-Benachrichtigungen deaktivieren Es wird nun geprüft, ob die Update-Benachrichtigungen aktiv sind. [ENTER] ''' dpkg -l gnome-packagekit while true; do read -p "Lies die Textausgabe des letzten Befehls. Ist das Paket aktiviert? [j/n] " yn case $yn in [Jj]* ) apt-get remove --purge gnome-packagekit; break;; [Nn]* ) exit;; * ) echo "Bitte antworte mit Ja oder Nein.";; esac done ################### echo '! Umstellung auf systemd-networkd' WIFIDEV=wlan0 export DEBIAN_FRONTEND=noninteractive apt-get remove -q -y --purge resolvconf systemctl disable NetworkManager systemctl enable systemd-networkd.service systemctl enable systemd-resolved.service systemctl start systemd-resolved.service rm /etc/resolv.conf ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf cat > /etc/systemd/network/20-dhcp.network << EOF [Match] Name=eth* [Network] DHCP=yes EOF cat > /etc/systemd/network/21-dhcp-wireless.network << EOF [Match] Name=$WIFIDEV [Network] DHCP=yes EOF cat > /etc/systemd/system/wpa_supplicant@.service << EOF [Unit] Description=WPA supplicant daemon (interface-specific version) Requires=sys-subsystem-net-devices-%i.device After=sys-subsystem-net-devices-%i.device Before=network.target Wants=network.target # NetworkManager users will probably want the dbus version instead. [Service] Type=simple ExecStart=/sbin/wpa_supplicant -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -i%I [Install] Alias=multi-user.target.wants/wpa_supplicant@%i.service EOF touch /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf chmod go-rwx /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf systemctl enable wpa_supplicant@$WIFIDEV.service systemctl disable networking systemctl disable wpa_supplicant.service #################### echo '! WIFI-Netzwerk hinzufügen' read -p 'Wie lautet die SSID? ' ssid read -p 'Wie lautet das zugehörige Passwort? ' passw export WIFIDEV=wlan0 wpa_passphrase $ssid $passw >> /etc/wpa_supplicant/wpa_supplicant-$WIFIDEV.conf #################### echo '! Puppet-Agent installieren' read -p '''Bevor der Puppet-Agent installiert werden kann, muss der Hostname geändert werden. Es darf kein "lan" im Namen auftauchen, z.B. statt mw101-lan.intern muss es mw101.intern heißen. [ENTER] ''' #editor /etc/hostname #read -p '''Der Rechner wird jetzt neu gestartet. #Danach bitte install-itzks2.sh ausführen. [ENTER] ''' # # Folgendes ist eleganter read -p 'Wie lautet der Hostname (ohne Domain)? ' myhost hostnamectl set-hostname $myhost # Hier muss ein Neustart vermieden werden. Welche Dienste sind neu zu starten? # invode echo '! Puppet-Agent wird installiert... ' apt-get install puppet puppet agent --test puppet agent --enable read -p '''Nun mit ssh auf den tjener wechseln und dort mit puppet cert --list die am Master angemeldeten Clients auflisten. Anschließend mit puppet cert --sign .intern den Puppet-Agent des Clients authorisieren. [ENTER] ''' ssh tjener echo '''! FERTIG Die Installation - des Basissystems mit ITZKS-Anpassungen - der Umstellung auf systemd-networkd - des Puppet-Agents ist abgeschlossen.'''