Wie man Epoptes in linuxmuster.net integrieren kann
By zefanja
In meinem [letzten Artikel][1] habe ich beschrieben, wie man Epoptes installieren und im Unterricht einsetzen kann. Wir verwenden an unserer Schule [linuxmuster.net][2] als [Schulserver-Lösung][3]. Eines der für mich besten Features in linuxmuster.net ist [postsync][4]. Mit Hilfe von Linbo (dem Bootmanager von linuxmuster.net) haben wir genau ein Image für alle unsere Ubuntu-Rechner und können trotzdem individuelle Anpassungen für einzelne Rechner oder ganze Räume vornehmen. Heute möchte ich deshalb beschreiben, wie man Epoptes in linuxmuster.net integriert. Für die Schüler- und Lehrerrechner müssen verschiedene Konfigurationen vorgenommen werden, doch dank postsync brauchen wir weiterhin nur ein „Master-Image“ pflegen.
Installation
Die Installation führen wir an einem Rechner, welcher mit Linbo verwaltet wird, durch. Dazu starten wir unser Ubuntu-Image (in unserem Fall Ubuntu 16.04) synchronisiert (Klick auf gelbes Symbol):
Nach dem Starten melden wir uns als lokaler Administrator an (z.B. linuxadmin). Danach installieren wir die beiden Pakete epoptes und epoptes-client.
$ sudo apt install epoptes epoptes-client
Mehr ist an dieser Stelle erst einmal nicht zu tun, da wir die Konfiguration später vornehmen.
Vorbereitungen für neues Master-Image
Bevor wir ein neues Master-Image erstellen, müssen wir folgende Dateien auf einen USB-Stick oder gleich auf den linuxmuster.net Server kopieren und auf unserem Master-Image-PC löschen.
/etc/default/epoptes-client
/etc/default/epoptes
/etc/epoptes/server.crt
/etc/epoptes/server.key
/etc/xdg/autostart/epoptes-client.desktop
/etc/init.d/epoptes
/etc/init.d/epoptes-client
/usr/bin/epoptes
/usr/sbin/epoptes-client
/usr/share/applications/epoptes.desktop
Entweder wir verschieben die Dateien auf einen Wechselspeicher (z.B. mit sudo mv /etc/default/epoptes-client /media/linuxadmin/Wechseldatenträger/
) oder per scp
direkt auf den linuxmuster.net Server (siehe nächster Abschnitt).
Hinweis: Die Ordner, in denen sich die Dateien befinden, werden nicht gelöscht!
Postsync einrichten
Wir wollen nun die nötigen Einstellungen vornehmen, damit der Postsync am Ende auch die richtigen Anpassungen vornimmt. Die genaue Funktionsweise des Postsync-Features ist [in der offiziellen Dokumentation][5] erklärt. Deshalb müssen wir alle unserer Anpassungen für unser Ubuntu 16.04 Image (Xenial) unterhalb von /var/linbo/linuxmuster–client/xenial/ vornehmen.
Dazu erstellen wir folgende Verzeichnis:
- /var/linbo/linuxmuster–client/xenial/Name-des-Computerraums/etc/default/
- /var/linbo/linuxmuster–client/xenial/Name-des-Computerraums/etc/epoptes/
- /var/linbo/linuxmuster–client/xenial/Name-des-Computerraums/etc/init.d/
- /var/linbo/linuxmuster–client/xenial/Name-des-Computerraums/etc/xdg/autostart/
- /var/linbo/linuxmuster–client/xenial/Name-des-Computerraums/usr/bin/
- /var/linbo/linuxmuster–client/xenial/Name-des-Computerraums/usr/sbin/
- /var/linbo/linuxmuster–client/xenial/Name-des-Computerraums/usr/share/applications/
Für unseren Lehrer-PC brauchen wir noch diese Verzeichnisse:
- /var/linbo/linuxmuster–client/xenial/Name-des-Lehrer-Rechners/etc/default/
- /var/linbo/linuxmuster–client/xenial/Name-des-Lehrer-Rechners/etc/epoptes/
- /var/linbo/linuxmuster–client/xenial/Name-des-Lehrer-Rechners/etc/init.d/
- /var/linbo/linuxmuster–client/xenial/Name-des-Lehrer-Rechners/etc/xdg/autostart/
- /var/linbo/linuxmuster–client/xenial/Name-des-Lehrer-Rechners/usr/bin/
- /var/linbo/linuxmuster–client/xenial/Name-des-Lehrer-Rechners/usr/sbin/
- /var/linbo/linuxmuster–client/xenial/Name-des-Lehrer-Rechners/usr/share/applications/
Die Ordner können wir auf dem linuxmuster.net Server wie folgt anlegen (Raum und Lehrer-PC anpassen und für alle Ordner aus den Listen oben durchführen):
# Raum r100
$ mkdir -p /var/linbo/linuxmuster-client/xenial/r100/etc/default/
...
# Lehrer-PC r100-pc01
$ mkdir -p /var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/
...
Sind alle Ordner angelegt, können wir nun die Epoptes-Dateien von unserem Master-Image-PC oder von unserem USB-Stick in die richtigen Verzeichnisse kopieren. Am einfachsten geht es, wenn man den passwortlosen Zugang zum Master-Image-PC eingerichtet hat.
Master-Rechner (aka Lehrer-PC)
Für den Lehrer-PC müssen wir folgende Dateien kopieren (vom Master-Image-PC):
- /etc/default/epoptes → Rechte 644
- /etc/epoptes/server.key → Rechte 644
- /etc/init.d/epoptes → Rechte 755
- /usr/bin/epoptes → Rechte 755
- /usr/share/applications/epoptes.desktop → Rechte 644
Mit scp
sieht da so aus (für alle Dateien wiederholen und Zielpfade anpassen):
$ scp root@r100-pc01:/etc/default/epoptes /var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/
...
Die Rechte könne mit chmod
angepasst werden:
$ chmod 644 /var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/epoptes
...
Da durch den Postsync erst alle Dateien aus dem Ordner /var/linbo/linuxmuster-client/xenial/r100/ synchronisiert werden, landen auch die Dateien des Epoptes Clients auf dem Lehrer-PC, was zu Problemen führt. Deshalb legen wir noch ein paar Dummy-Dateien an, um die Dateien des Epoptes-Clients wieder zu überschreiben:
$ cd /var/linbo/linuxmuster-client/xenial/r100-pc01/
$ touch etc/default/epoptes-client etc/xdg/autostart/epoptes-client.desktop etc/init.d/epoptes-client usr/sbin/epoptes-client
Client-Rechner (aka Schüler-PC)
Ähnlich wir zu unserem Lehrer-PC kopieren wir nun noch die Dateien für unsere Schüler-Rechner. Diese Dateien werden benötigt:
- /etc/default/epoptes-client → Rechte 644
- /etc/epoptes/server.crt→ Rechte 644
- /etc/hosts → Rechte 644
- /etc/xdg/autostart/epoptes-client.desktop → Rechte 644
- /etc/init.d/epoptes-client → Rechte 755
- /usr/sbin/epoptes-client → Rechte 755
Diese können wir wieder nach dem gleichen Muster wie oben per scp
auf unseren Server vom Master-Image-Computer kopieren:
$ scp root@r100-pc01:/etc/default/epoptes-client /var/linbo/linuxmuster-client/xenial/r100/etc/default/
...
Die Rechte könne mit chmod
angepasst werden:
$ chmod 644 /var/linbo/linuxmuster-client/xenial/r100/etc/default/epoptes-client
...
Nun sind alle Dateien am richtigen Ort und wir können Epoptes konfigurieren.
Epoptes konfigurien
Master-Rechner (aka Lehrer-PC)
Für den Lehrer-PC müssen wir nur in der Datei /var/linbo/linuxmuster-client/xenial/r100-pc01/etc/default/epoptes die SOCKET_GROUP von epoptes inSOCKET_GROUP=teachers
ändern.
Client-Rechner (aka Schüler-PC)
Für die Schüler-Rechner müssen wir etwas mehr konfigurieren.
- /var/linbo/linuxmuster-client/xenial/r100/etc/default/epoptes-client
SERVER=r100-pc01
– hier müssen wir den Namen des Lehrer-Rechners eintragen- Wer Wake-On-Lan nutzen möchte, muss das Kommentarzeichen vor
WOL=g
entfernen.
- /var/linbo/linuxmuster-client/xenial/r100/etc/xdg/autostart/epoptes-client.desktop
X-GNOME-AutoRestart=true
– Damit der Epoptes-Client auch bei einem Neustart des Displayservers neustartet, müssen wir hier wieder das Kommentarzeichen entfernen, .
- /var/linbo/linuxmuster-client/xenial/r100/etc/hosts
- Da es manchmal Probleme mit dem Epoptes-Client trotz korrekter Namensauflösung geben kann, ergänzen wir am Ende der Datei die IP des Lehrer-PCs (IP anpassen!):
#Server für epoptes 10.16.5.100 r100-pc01
- Da es manchmal Probleme mit dem Epoptes-Client trotz korrekter Namensauflösung geben kann, ergänzen wir am Ende der Datei die IP des Lehrer-PCs (IP anpassen!):
### Image erstellen
Jetzt können wir ein neues Master-Image auf unserem Master-Image-PC erstellen. Wichtig ist, dass man vorher alle unnötigen Dateien entfernt, damit das Image nicht unnötig groß wird (z.B. alte Kerneldateien, homes der Schüler und Lehrer löschen, Chronik von Firefox / Chrome bereinigen, …). Das Tool „[LMLCC][6]“ ist an dieser Stelle sehr sehr hilfreich.
> **Wichtig**: Unbedingt die **Dateien** **löschen**, die unter „Vorbereitungen für neues Master-Image“ aufgelistet sind!
Nach dem Neustart des Rechners können wir in [Linbo ein neues Image erstellen und auf den Server hochladen][7].
### Postsync testen
Jetzt, da wir ein neues Image haben und Epoptes konfiguriert ist, müssen wir noch testen, ob auch alles funktioniert, wie es soll. Zuerst brauchen wir das [Postsync][5]-Skript. Es sollte in der Regel schon vorhanden sein oder man kann es sich [hier herunterladen][8] und nach _**/var/linbo/xenial.cloop.postsync**_ kopieren (Rechte 664).
$ wget -O /var/linbo/xenial.cloop.postsync https://raw.githubusercontent.com/linuxmuster/linuxmuster-client-servertools/master/usr/lib/linuxmuster-client-servertools/generic.postsync $ chmod 664 /var/linbo/xenial.cloop.postsync
Nun starten wir einen beliebigen Rechner in unserem Computerraum und synchronisieren ihn mit Linbo, indem wir auf das gelbe oder rote Synchronisationssymbol klicken. Danach startet der Rechner und alles sollte fertig eingerichtet sein.
Leider sieht man in Linbo nicht direkt, ob der Postsync geklappt hat oder nicht. Wir können uns aber vom Server aus in Linbo einloggen. Dazu starten wir wieder einen Rechner aus dem Computerraum und warten bis Linbo fertig gebootet hat. Dann können wir wie folgt den Rechner synchronisieren und dabei beobachten, was passiert:
$ linbo-ssh r100-pc02
Dann in der Linbo-Shell
$ linbo_wrapper sync:1
Die 1 steht für das 1. Betriebssystem, d.h. wenn man ein Dual-Boot System mit Windows hat und Ubuntu das zweite System ist, müssen wir den Befehl anpassen.
Falls Fehler auftreten, werden sie in der Konsole angezeigt. Vor allem sollte man erkennen können, ob der Postsync überhaupt ausgeführt wird!
Wenn alle Rechner im Computerraum synchronisiert sind, kann Epoptes benutzt werden.
### Fazit
Die Integration von Epoptes in linuxmuster.net hat für uns den großen Vorteil, dass wir weiterhin nur ein Ubuntu-Image pflegen müssen, aber trotzdem einzelne Rechner unterschiedlich zu konfigurieren (auch offline!). Für mich persönlich ist dieses eines der Killer-Features von linuxmuster.net (neben der [großartigen Community][9]!) Deshalb kann ich jedem, der sich für eine freie Schulserverlösung interessiert, linuxmuster.net sehr ans Herz legen.
### Problemlösung
#### Epoptesdienst startet nach Kernelupdate nicht mehr
Falls nach einem Kernelupdate der Epoptesdienst nicht mehr startet, hilft es Epoptes **vor** dem Kernelupdate zu deinstallieren mit
$ sudo apt remove –purge eopoptes
Danach alle Updates durchführen, die _epoptes_ Pakete erneut installieren, die notwendigen Dateien wieder entfernen (am besten die Dateien in **lmlcc** unter _Bereinigen_ mit hinzufügen) und dann das Image neu schreiben.
[1]: https://zefanjas.de/klassenraummanagement-mit-epoptes-app-des-monats/
[2]: http://www.linuxmuster.net
[3]: https://zefanjas.de/4-linux-schulserver-im-vergleich/
[4]: http://docs.linuxmuster.net/de/latest/clients/postsync/basics.html
[5]: http://docs.linuxmuster.net/de/latest/clients/postsync/index.html
[6]: https://www.linuxmuster.net/wiki/anwenderwiki:linuxclient:lmlcc
[7]: http://docs.linuxmuster.net/de/latest/clients/linbo/linbo-imagingscreen.html
[8]: https://raw.githubusercontent.com/linuxmuster/linuxmuster-client-servertools/master/usr/lib/linuxmuster-client-servertools/generic.postsync
[9]: https://ask.linuxmuster.net