Epoptes in linuxmuster

Wie man Epoptes in linuxmuster.net integrieren kann

In meinem letzten Artikel habe ich beschrieben, wie man Epoptes installieren und im Unterricht einsetzen kann. Wir verwenden an unserer Schule linuxmuster.net als Schulserver-Lösung. Eines der für mich besten Features in linuxmuster.net ist postsync. 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):

linbo-mainscreen-registered

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 erklärt. Deshalb müssen wir alle unserer Anpassungen für unser Ubuntu 16.04 Image (Xenial) unterhalb von /var/linbo/linuxmusterclient/xenial/ vornehmen.

Dazu erstellen wir folgende Verzeichnis:

  • /var/linbo/linuxmusterclient/xenial/Name-des-Computerraums/etc/default/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Computerraums/etc/epoptes/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Computerraums/etc/init.d/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Computerraums/etc/xdg/autostart/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Computerraums/usr/bin/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Computerraums/usr/sbin/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Computerraums/usr/share/applications/

Für unseren Lehrer-PC brauchen wir noch diese Verzeichnisse:

  • /var/linbo/linuxmusterclient/xenial/Name-des-Lehrer-Rechners/etc/default/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Lehrer-Rechners/etc/epoptes/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Lehrer-Rechners/etc/init.d/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Lehrer-Rechners/etc/xdg/autostart/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Lehrer-Rechners/usr/bin/
  • /var/linbo/linuxmusterclient/xenial/Name-des-Lehrer-Rechners/usr/sbin/
  • /var/linbo/linuxmusterclient/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

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“ 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.

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-Skript. Es sollte in der Regel schon vorhanden sein oder man kann es sich hier herunterladen 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!) 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.

2 Comments:

Leave a Reply:

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert