[[PageOutline]] = Aufsetzen eines Linuxmuster-Clients from scratch Hier werden Hinweise beschrieben, wie man einen völlig neuen Linuxmuster-Client im pädagogischen Netzwerk des Kepler-Gymnasiums aufsetzen kann. In der Regel wird man das nicht durchführen, sondern auf ein bestehendes Image aufbauen. Es kann jedoch Situationen geben, in denen ein frisches Image gewünscht wird. Hintergrund:: Das hier beschriebene Verfahren dokumentiert das Aufsetzen des Kepler-Releases "Creativer Christof", beruhend auf "Ubuntu 16.04 LTS (Xenial Xerus)". Grund für das Neuaufsetzen war der Übergang von einem 32-bit zu einem 64-bit Image (ticket:2229). Das letzte vorhergehende Image ("Bahnbrechende Birgit") beruhte ursprünglich auf "Ubuntu 10.04.3 LTS (Lucid Lynx) (32-bit)". Das Image wurde also über sechs Jahre gepflegt und aktualisiert und unterscheidet sich in der Konfiguration nur marginal vom aktuellen Image. Wäre nicht der Übergang zu 64-bit gewünscht gewesen, hätte dieses Image problemlos weiter gepflegt werden können. Das soll uns erst einmal jemand mit Windows nachmachen! == Bei Bedarf: Client aufnehmen Im Folgenden gehen wir davon aus, dass wir an einer Client-Maschine arbeiten, die bereits ins Linuxmuster-Setup aufgenommen wurde. Sie erhält also eine fest vergebene IP-Adresse (vorzugesweise im Schülernetz) und bootet Linbo vom Netz. == (Ed)ubuntu installieren - Ein aktuelles (Ed)ubuntu-Installations-ISO herunterladen und auf einen USB-Stick schreiben. - Hinweis: Im Moment gibt es keine aktuellen Edubuntu-Installationsimages mehr. Also Ubuntu benutzen. - Client vom USB booten. - Optional: Um während der Installation gleich die aktuellen Updates herunterladen zu können, muss apt den Software-proxy kennen: {{{ ~ sudo -sH # echo > /etc/apt/apt.conf.d/80kepler-proxysw 'Acquire::http::proxy "http://proxysw.kg-fds.de:8080";' }}} - Sprache "Deutsch" auswählen - "Aktualisierungen herunterladen" auswählen, wenn der Proxy gesetzt wurde (sonst machen wir das später!) - "Lizensierte Inhalte installieren" auswählen - Bei der Partitionswahl "etwas anderes" auswählen, dann konsistent mit unseren Linuxmuster-Partitionen wählen: - `/dev/sda1` als `/` (formatieren) - `/dev/sda2` als `/usr/share/virtualbox-vdi` - `/dev/sda3` als Swap - Nutzer "linadmin" mit dem zugehörigen Passwort Die Installation dauert nur wenige Minuten :-). - USB-Stick entfernen und den neuen Client booten. == Grundkonfiguration Als lindamin einloggen, dann root werden: {{{ ~ sudo -sH }}} === fstab Der Ubuntu-Installer schreibt in die fstab UUIDs. Das können wir nicht gebrauchen, da die UUID der Festplatte auf jedem Client anders ist. Wir überschreiben die fstab mit der guten alten `dev`-Schreibweise: {{{ # cat > /etc/fstab << EOF # /etc/fstab: static file system information. # # Use 'blkid -o value -s UUID' to print the universally unique identifier # for a device; this may be used with UUID= as a more robust way to name # devices that works even if disks are added and removed. See fstab(5). # # /dev/sda1 / ext4 errors=remount-ro 0 1 /dev/sda2 /usr/share/virtualbox-vdi/ ext4 defaults 0 2 /dev/sda3 none swap sw 0 0 EOF }}} Hinweis:: Früher enthielt unsere fstab die Option `discard` zum Online-Trimming der SSD-Deteisysteme. Über die Verwendung von Online-Trimming gehen die Meinungen auseinander. Ich halte mich hier an das Standard-Setup von Ubuntu: kein `discard` in der fstab. Stattdessen wird über `cron.weekly` einmal wöchentlich der `fstrim`-Befehl für alle gemounteten Filesysteme ausgeführt. Die Swap-Partition wird bei jedem ersten Mounten getrimmt. Siehe: UbuntuusersDe:SSD/TRIM/ === Systemweiter Proxy {{{ # echo >> /etc/environment http_proxy=http://proxy.kg-fds.de:8080/ # echo >> /etc/environment https_proxy=https://proxy.kg-fds.de:8080/ # echo >> /etc/environment ftp_proxy=ftp://proxy.kg-fds.de:8080/ }}} Im Schülernetz wird dieser Name aufgelöst zu 10.32.1.251 (proxys) im Lehrernetz zu 129.143.4.2 (!BelWü-Proxy), jeweils Port 8080 oder 3128. === APT-Proxy Um unüberwachte Updates zu ermöglichen, muss außerdem APT einen durchlässigen Proxy kennen. Im Lehrernetz ist das ebenso der BelWü-Proxy, im Schülernetz haben wir hierfür einen speziellen APT-Proxy. Beide werden dynamisch über den Namen `proxysw` aufgelöst, also: {{{ # echo > /etc/apt/apt.conf.d/80kepler-proxysw 'Acquire::http::proxy "http://proxysw.kg-fds.de:8080";' }}} === Pakete auf den neusten Stand bringen: {{{ # apt update # apt full-upgrade }}} === SSH-Zugang einrichten {{{ # apt install ssh }}} Ab jetzt kann die weitere Adminstration über ssh erfolgen. Bevor wir irgend etwas weiteres beginnen, installieren wir aber einen Editor :-) : {{{ # apt-get install emacs }}} === Root-Login ermöglichen {{{ # passwd }}} Die SSH-Schlüssel der Administratoren zulassen: {{{ # mkdir ~root/.ssh # chmod go-rx ~root/.ssh # cat > ~root/.ssh/authorized_keys < /etc/issue.kepler '"Creativer Cristof"' # oder jetzt aktueller Codename }}} {{{ # cat > /etc/update-motd.d/05-kepler-release < /etc/apt/sources.list.d/atareao-telegram.list < /etc/apt/sources.list.d/geogebra.list < /etc/apt/sources.list.d/linuxmuster-net.list <` - `@kg-fds.de` - `root` - Dalls nicht alle Optionen bei der Installation abgefragt werden, oder sie später noch einmal gesetzt werden sollen, ist das möglich mit `dpkg-reconfigure postfix`. TODO: Hinweis: in Xenial offenbar nicht mehr verfügbar: freemind, xfonts-mathml TODO: Fehlen noch: acroread, vstdrivers, xaralx === ev. zusätzliche Treiber aktivieren Als linadmin einloggen und mit dem "Software&Repositories"-Tool möglicherweise verfügbare zusäztliche Treiber aktivieren. === manuell zu installierende Software ==== TODO: Xara Xtreme Siehe #467, http://www.xaraxtreme.org/download.html ==== Dropbox-Daemon Normalerweise lädt Dropbox beim ersten Start (oder durch den Aufruf `dropbox start -i`) den Dropbox-Daemon automatisch herunter, allerdings ins Homeverzeichnis des jeweiligen Nutzers (`~/.dropbox-dist/`). Da das 140MB sind, ist es besser, den Daemon systemweit zu installieren. Das geschieht z.B. so: {{{ # mkdir /var/lib/dropbox/ # cd /var/lib/dropbox/ # wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar --no-same-owner -xzf - }}} Ev. muss zuvor die `http(s)`-Umgebungsvariable mit Nutzer und Passwort gesetzt werden. Das lädt den Daemon herunter und packt ihn in das Verzeichnis `.dropbox-dist` aus. Nach einem Nautilus-Restart kann man Dropbox verwenden. ==== FUNKTIONIERT DERZEIT NICHT: Google Earth GE gibt es nicht in den Ubuntu-Paketquellen (logisch). Es gibt aber ein Paket, dass die Installationsdatei von Google herunterlädt und ein *.deb-Paket daraus baut: {{{ # apt install googleearth-package }}} - Dann die `http_proxy`-Variable setzen (am besten auf den Lehrerproxy) - Dann `make-googleearth-package --force --cleanup` aufrufen. - Abhängigkeiten von Hand installieren und dann googleearth-Paket installieren: {{{ # apt install lsb-core libfreeimage3 # dpkg -i }}} ==== TODO: zusätzliche Microsoft-Fonts (siehe #1723) == Skripte in `/usr/local/sbin` {{{ # rmdir /usr/local/sbin/ # svn checkout svn+ssh://root@paedml/srv/svn/keplertools/scripts/trunk/ /usr/local/sbin/ }}} == LDAP-utils einrichten Einige unserer Skripte fragen die LDAP-Datenbank auf dem paedml ab. Das zugehörige Paket `ldap-utils` muss ensprechend konfiguriert werden: {{{ # emacs -nw /etc/ldap/ldap.conf }}} Einfügen: {{{ BASE dc=kg-fds,dc=de URI ldaps://paedml/ }}} TODO:: auch: `bind_policy soft`?? Test: Danach sollte der Befehl `teachers` die UIDs der Lehrer auflisten. == linuxmuster.net-Paket Vorgehen wie auf https://www.linuxmuster.net/wiki/dokumentation:handbuch:clients:ubuntu.manualinstallation beschrieben. === client-auth-Paket {{{ # apt install linuxmuster-client-auth }}} Alle Fragen beantworten, wie hier beschrieben: https://www.linuxmuster.net/wiki/dokumentation:handbuch:clients:linuxmuster-client-auth. Sofern nicht bereits im letzten Schritt abgefragt, den LDAP-Server auf `paedml` einstellen: {{{ # dpkg-reconfigure linuxmuster-client-auth }}} - LDAP-Server: `paedml` - Suchbasis: `dc=kg-fds,dc=de` Der Name `paedml` wird im Lehrer- und Schülernetz passend aufgelöst. Weiteres Anpassen der `ldap.conf` ist offenbar nicht mehr nötig (Defaultwert für timelimit steht auf 5s). === client-shares-Paket {{{ # apt install linuxmuster-client-shares }}} Problem:: Derzeit ist im postinst-Skript ein Fehler, siehe http://www.linuxmuster.net/flyspray/task/588. Wichtig:: Das Installationsskript trägt in der Datei `/etc/security/pam_mount.conf.xml` die Serveradresse als IP ein. Das können wir bei unserem Setup mit Schülernetz und Lehrernetz nicht gebrauchen. Daher ändern wir den Eintrag "10.32.1.1" ab in "paedml", der in beiden Netzen richtig aufgelöst wird: {{{ # sed -i "s/10.32.1.1/paedml/g" /etc/security/pam_mount.conf.xml }}} Außerdem:: Die Linuxmusterleute haben den Namen für "Tausch_auf_Server" in "Tauschen_auf_Server" geändert. Bei uns zeigen die Bookmarks aber noch auf den alten Wert, also ändern wir zurück: {{{ # sed -i "s/Tauschen_auf_Server/Tausch_auf_Server/" /etc/linuxmuster-client/shares/linkfoldername.conf }}} === client-profile-Paket {{{ # apt install linuxmuster-client-profile }}} Wichtig:: Damit unsere derzeitige Konfiguration mit getrenntem linadmin/Vorlagennutzer und unsere angepassten Linkstruktur funktioniert, müssen einige Konfigurationsdateien angepasst werden. (Hinweis: kann sich mit der Zeit ändern. Überprüfen!) ==== Datei `/etc/linuxmuster-client/profile/profile.conf` anpassen: - PROFILE_USER="vorlage" - OWNDOCSFOLDER="." - RSYNC_OPTIONS="--links" ==== Datei `/etc/linuxmuster-client/profile/home-preference.conf` anpassen: - HOMEPREFERENCEFOLDERNAME="einstellungen" ==== Datei `/etc/linuxmuster-client/profile/usersettings.conf` überschreiben: {{{ # cat > /etc/linuxmuster-client/profile/usersettings.conf < /etc/linuxmuster-client/profile/usersettings-opt.conf < .mozilla/firefox/profiles.ini < .thunderbird/profiles.ini < README--ACHTUNG--Hier-keine-Dateien-speichern.txt < /etc/lightdm/lightdm.conf.d/21-kepler-disable-greeter-hide-users.conf < /etc/lightdm/lightdm.conf.d/50-kepler-seats.conf < /usr/share/glib-2.0/schemas/96_kepler.gschema.override < herausfinden! # set default keyboard layout from "de-nodeadkeys" to "de", see ticket:1217 [org.gnome.desktop.input-sources] sources = [('xkb', 'de'), ('xkb', 'de+nodeadkeys')] EOF }}} {{{ # glib-compile-schemas /usr/share/glib-2.0/schemas/ }}} TODO:: Herausfinden, von wo [org.gnome.desktop.input-sources] überschrieben wird (s.o) und warum das Aktivieren des Desktop switchers nicht funktioniert. === Hintergrundbild Das Default-Hintergrundbild, das mit Edubuntu kommt, ist bei uns im Schülernetz und im Lehrernetz (per Linbo-Postsync) unterschiedlich verlinkt. Das jeweils aktuelle Bild ist unter den Links `kepler_default_{schueler,lehrer}` erreichbar: {{{ # cd /usr/share/backgrounds # ln -s kepler_default_schueler # ln -s kepler_default_lehrer }}} Hinweis:: Wenn wir jetzt noch keine zwei Hintergrundbilder haben, nehmen wir vorerst mal den Ubuntu-Standard `warty-final-ubuntu.png`. Im Client-Image muss der Defaultlink auf `kepler_default_schueler" verweisen. (Im Lehrerimage wird es vom postsync-Skript passend abgeändert): {{{ # cd /usr/share/backgrounds # ln -sf kepler_default_schueler edubuntu_default.png # ln -sf kepler_default_lehrer edubuntu_default.jpg }}} === TODO: Kepler-Logo in /usr/share/unity-greeter/kepler_logo.png == ENTFÄLLT? Vorgaben für Gnome-Settings (dconf) einrichten User-Datenbank einrichten und erzeugen: {{{ # cat > /etc/dconf/profile/user < /etc/dconf/db/site.d/00_site_settings < /etc/dconf/db/site.d/locks/00_site_locks <> /etc/crontab < /etc/devilspie2/debug.lua < /etc/devilspie2/logout-dialog.lua < /etc/xdg/autostart/devilspie2.desktop <