[[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. == 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: {{{ # echo >> /etc/apt/apt.conf '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 `/` - `/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 - mittels `sudo -sH` root werden === 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 konnen. 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 '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 (open?)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: {{{ # cat > ~root/.ssh/authorized_keys </32 -j ACCEPT }}} === NFS-Anbindung Die Anbindung an verschiedene Serververzeichnisse geschieht bei uns momentan nur noch über CIFS. Das Setup ist aber noch immer im Fluss, siehe u.a. #1213, #1192. Momentan wird //gar kein Verzeichnis// über NFS gemountet (sondern "just in Time" beim Login per `pam_mount` über CIFS (s.u.). ** Es sind daher derzeit keine Eintragungen in `/etc/fstab` nötig! ** - (In `/etc/fstab` hinzufügen (Hinweis: die `noauto` EInträge sind ein Workaround und können möglicherweise inzwischen entfallen, siehe #856):) {{{ # Home ueber NFS: #10.32.1.1:/nfsexport/home/students /home/students nfs _netdev,bg,noauto 0 0 #10.32.1.1:/nfsexport/home/teachers /home/teachers nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/home/share /home/share nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/tasks /var/cache/sophomorix/tasks nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/home/ftp/Scans /home/ftp/Scans nfs _netdev,bg,noauto 0 0 10.32.1.1:/nfsexport/home/cds /home/cds nfs _netdev,bg,noauto 0 0 }}} - (Verzeichnisse anlegen, richtige Besitzrechte einstellen und mounten) {{{ # mkdir -p /home/{students,teachers,share,ftp/Scans,cds} /var/cache/sophomorix/tasks # chgrp teachers /home/teachers # chmod o-r /home/teachers # apt-get install nfs-common # mount -a }}} === LDAP-Anbindung ==== 1. Option: linuxmuster.net-Paket Die einfachste Möglichkeit, die LDAP-Anbindung an den Linuxmuster.net-Server (paedml) einzurichten, wäre sicherlich, das entsprechende linuxmuster.net-Paket zu installieren (`linuxmuster-client-auth`). Die Pakete gibt es aber nur für die LTS-Versionen von Ubuntu. Befinden wir uns auf einer nicht-LTS-Version, müssen wir die Anbindung von Hand vornehmen. ==== 2. Option: LDAP manuell konfigurieren - LDAP-Client-Pakete und Name Server Caching Daemon installieren {{{ # apt-get install ldap-auth-client nscd }}} || ||=Im Schülernetz=||=Im Lehrernetz=||=In beiden Netzen=|| ||=Server=|| `ldaps://10.32.1.1/` || `ldaps://10.16.112.4/` || `ldaps://paedml.kg-fds.de/`|| ||=Distinguished name=|||||| `dc=kg-fds,dc=de` || ||=LDAP-Version=|||||| 3 || ||=Make local root Database admin=|||||| ja || ||=LDAP-Login nötig=|||||| nein || ||=LDAP account for root=|||||| cn=admin,dc=kg-fds,dc=de || ||=LDAP-Root-Passwort=|||||| (siehe `paedml:/etc/ldap/slapd.conf`) || - Wir verwenden innherhalb des Kepler-Netzwerkes keine Zertifikate für SSL-Verbindungen.\\ Daher in `/etc/ldap.conf` ändern: {{{ tls_checkpeer no }}} - Nun dem [wikipedia:"Name Service Switch"] sagen, dass er die Nutzerinformationen über LDAP beziehen soll:\\ In `/etc/nsswitch.conf` ändern: {{{ passwd: compat ldap group: compat ldap shadow: compat ldap }}} Ab jetzt könnten sich Nutzer des Kepler-Netzwerkes mit ihrem Nutzernamen und Passwort einloggen -- wenn sie ein Homeverzeichnis hätten. Sofern die Homeverzeichnisse nicht komplett über NFS gemountet werden, wird hierzu der Service `pam_mount` verwendet, der die Homeverzeichnisse //just in time// anlegt und mountet. ==== Userspace-LDAP-Unterstützung Außer für die Authentifizierung wollen wir auch LDAP-Anfragen an den paedml schicken, um z.B. Nutzernamen etc. abzufragen (viele unserer Skripte nutzen das). Hierfür werden die folgenden Pakete benötigt: {{{ # apt-get install ldap-utils }}} Die Userspace-LDAP-Tools benutzen ein anderes Konfigurationsfile, als die Authentifizierungstools. In `/etc/ldap/ldap.conf` eintragen: Im Schülernetz:: {{{ BASE dc=kg-fds,dc=de URI ldaps://10.32.1.1/ TLS_REQCERT never bind_policy soft }}} Im Lehrernetz:: {{{ BASE dc=kg-fds,dc=de URI ldaps://10.16.112.4/ TLS_REQCERT never bind_policy soft }}} In beiden Netzen: {{{ BASE dc=kg-fds,dc=de URI ldaps://paedml.kg-fds.de/ TLS_REQCERT never bind_policy soft }}} === pam_mount konfigurieren (CIFS-Anbindung) Dieser Schritt wird nur benötigt, wenn die Homeverzeichnisse (wie bei der Linuxmuster.net üblich) //just in time// über CIFS gemountet werden. Die Sache ist noch immer in der Testphase. {{{ # apt-get install libpam-mount cifs-utils }}} In `/etc/security/pam_mount.conf.xml` ändern/hinzufügen: {{{ 0-5000 }}} Nach einem Reboot können sich Nutzer des Kepler-Netzwerkes mit Nutzername und Passwort einloggen und sehen ihr Homeverzeichnis. == LightDM konfigurieren LightDM-Optionen setzen. Z.B. muss die Eingabe eines Benutzernamens erlaubt werden. Die Gast-Sitzung sollte deaktiviert sein. Hier kann auch die voreingestellte Sitzung gewählt werden: In `/etc/lightdm/lightdm.conf`: {{{ [SeatDefaults] user-session=gnome-flashback greeter-hide-users=false greeter-show-manual-login=true greeter-allow-guest=false }}} Um Zugriff per XDMCP zu aktivieren (derzeit noch experimentell) außerdem: {{{ [XDMCPServer] enabled=true }}} - dann {{{ # restart lightdm }}} == Software Einige zusätzliche Software muss installiert und konfiguriert werden. === Nur 14.04: Synapse aus den Saucy-Quellen Aufgrund veralteter Abhängigkeiten, ist der synapse-Launcher aus dem Debia-Repository herausgeflogen, und damit auch aus den Ubuntu-Quellen. Es gibt keinen technischen Defekt, die Entwickler haben einfach versäumt, ihre Abhängigkeiten zu aktualisieren. Solange das Paket in den Trusty-Quellen nicht verfügbar ist, kann das Paket aus den Saucy-Quellen verwendet werden. Dazu werden die Saucy-Paketquellen eingetragen: {{{ # cat > /etc/apt/sources.list.d/saucy.list <> /etc/xdg/autostart/plank.desktop }}} Konfiguration in `~/.config/plank/dock1/settings`. === Weitere Software: {{{ # apt-get install aptitude apt-listchanges debfoster dconf-editor subversion finger enigmail {thunderbird,firefox}-locale-de libreoffice-l10n-de libreoffice-help-de fonts-crosextra-caladea fonts-crosextra-carlito geogebra nautilus-dropbox synapse virtualbox remmina-plugin-xdmcp vlc texlive texlive-latex-extra texlive-lang-{german,french,english,spanish} auctex gedit-latex-plugin texmaker ubuntu-restricted-extras mesa-utils audacity stellarium wine pptview hamster-indicator ardesia xournal xaralx mypaint krita codeblocks pingus hedgewars gnome-activity-journal freemind kdenlive pitivi gnome-clocks }}} === Dropbox-Daemon manuell installieren Normalerweise lädt Dropbox beim ersten Start (oder durch den AUfruf `dropbox start -i`) den Dropbox-Daemon automatisch herunter. Das funktioniert derzeit hinter Firewalls offenbar nicht. So installiert man den Daemon manuell: Hinweis:: Der Daemon startet dennoch nicht, Grund unbekannt. Derzeitige Lösung: Das Verzeichnis `/var/lib/dropbox/.dropbox-dist` per rsync von einem funktionierenden Server kopieren. {{{ # 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. Danach kann man Dropbox verwenden. === Evernote-Client installieren Siehe ticket:1761. === 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 --ceanup` aufrufen. - Abhängigkeiten von Hand installieren und dann googleearth-Paket installieren: {{{ # apt install lsb-core libfreeimage3 # dpkg -i }}} === Backports der neueren Gnome-Session aktivieren Hinweis:: Dieser Vorgang wird hoffentlich mit einer späteren Ubuntu-Version überflüssig, die neuere Versionen von Gnome-Session enthält. Derzeit (Trusty 14.04 LTS) ist er noch nötig! Bisher arbeiteten unsere Clients noch nie mit aktivierter Grafikbeschleunigung, die war stets durch einen entprechenden Eintrag in der lts.conf deaktiviert. Ab Saucy funktionierte nicht einmal der Start der Gnome-Session mit aktivierter Beschleunigung (endlos drehendes Cursor-Rad). Nach langem suchen habe ich endlich jemanden gefunden, der das Problem ebenfalls beschreibt, siehe #1514 bzw. launchpad:1251281. Wir wollen aus diesem PPA nur auf spezielle Anfrage Pakete erhalten: {{{ # sudo add-apt-repository ppa:eugenesan/ppa # apt-get update # apt-get dist-upgrade }}} === Nur vorübergehend: Logout-Workaround Hinweis:: Diese Prozedur wird hoffentlich bald nicht mehr nötig sein: Die eben beschriebenen Backports bringen einen weiteren Bug mit ins Boot: Der Logout von der Gnome-Session über den normalen Logout-Knopf funktioniert derzeit nicht. Ich habe einen kleinen Logout-Starter geschrieben, das das Problem umgeht: {{{ # cd /root # svn update LTSP-setup # cp LTSP-setup/logout-workaround.desktop /usr/share/applications/ }}} Dieser Starter sollte in die Plank-Leiste gelegt werden bzw. ins Gnome-Panel oder auf den Desktop. == Hintergrundbild Das Default-Hintergrundbild, das mit Edubuntu kommt ändern: {{{ # cd /usr/share/backgrounds # rm edubuntu_default.{png,jpg} # ln -s edubuntu_default.png # ln -s edubuntu_default.jpg }}} Achtung, die Hintergründe werden seit einiger Zeit in den Homes der Nutzer gecached. Der Cache muss gelöscht werden, sonst wird das Bild aus dem Cache genommen. Dazu wird am besten **auf dem paedml** ausgeführt (Achtung, Vorsicht walten lassen): {{{ paedml# for h in $(teacherhomes) $(studenthomes) ; do rm -r $h/.cache/wallpaper/ ; done }}} Damit sollten alle Nutzer, die kein spezielles Bild ausgewählt hatten, das Salamanderbild erhalten. == Vorgaben für Gnome-Settings (dconf) einrichten Hinweis:: Derzeit wir der logout-Workaround als Logout-Knopf verwendet. Wenn irgendwann der eingebaute Logout-Knopf wieder funktioniert, kann wieder dieser verwendet werden (siehe auskommentierte Teile). - 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/xdg/autostart/synapse.desktop < /etc/xdg/autostart/ltsp-startup.desktop <