Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:epoptes]] 

Epoptes - Alternative für ITalc in reinen Linuxumgebungen

Epoptes ist wie Italc eine spezielle Art der Fernwartung, mit der sich einzelne Linux-PCs oder auch ganze Gruppen bzw. Pools verwalten und fernsteuern lassen. Einsatzzweck ist die Nutzung als Unterrichtshilfe innerhalb von EDV-Schulungsräumen. In der Distribution Edubuntu ist es das Standardprogramm für Classroommanagement.

Epoptes nutzt eine Kombination aus Master- und Client-Rechnern und basiert auf einer verschlüsselten Reverse-Vnc Verbindung. Die Authentifizierung geschieht mittels Zertifikat und Nutzergruppe.

In reinen Linuxumgebungen ist Epoptes ITalc weit überlegen, da es für diesen Zweck speziell entwickelt ist.

Vorteile:

  • wird aktiv weiterentwickelt (ITalc ist sei 2011 quasi tot),
  • extrem schnell, ressourcenschonend und stabil,
  • viel intuitiver zu bedienen als ITalc…Kollegen kommen nach einer Minute damit klar!,
  • Sämtliche Funktionen wie z.B. Shutdown, Mute, Bildschirmsperre, WOL,… funktionieren sofort, schnell und stabil.

Nachteile:

  • außerhalb von LTSP - Umgebungen sehr aufwändige Installation und Konfiguration,
  • Lehrerrechner muss statisch vorgegeben sein,
  • keine Windowsunterstützung in hybriden Umgebungen.

Installation

Die nachfolgende Anleitung beinhaltet eine Sicherheitslücke, da der private Schlüssel von einem fähigen Schüler ohne weiteres vom Server heruntergeladen werden kann. Um dieses Problem zu verhindern wurde die Anleitung als Ansible Rolle neu implementiert. Diese Rolle ist an diese Anleitung angelehnt und kann dazu eingesetzt werden um die Installation automatisch durchzuführen. Siehe auch Ansible role ypid.epoptes.

Die Installation läuft grob folgendermaßen ab:

  • Installation von epoptes und epoptes-client auf dem Masterrechner
  • Kleiner Bugfix
  • Wegkopieren der wesentlichen Konfigurations- und Programmdateien
  • Image mit Linbo
  • Pro Raum wird mittels universellem-linbo-postsync jeweils das Server-Client-Umfeld geschaffen, so dass der Lehrerrechner nur den Epoptes-Server mit Anpassungen enthält und die Arbeitsstationen nur den Epoptes-client…


Um Epoptes einrichten zu können sollte man sich mit Terminal, Editoren und dem Universellen Linbo-Postsyncskript auskennen.

Installation von epoptes und epoptes-client

Das ist in Ubuntu schnell erledigt:

#sudo apt-get update && sudo apt-get install epoptes-client epoptes

Eventuelle Konfigurationsabfragen können einfach mit den vorgegebenen Defaulteinstellungen übernommen werden. Die eigentliche Konfiguration erfolgt später per Hand.

Die momentan (2014/2015) aktuelle Version 0.5.7-1 ist erst ab Ubuntu 14.04 in den offiziellen Repos enthalten. Nutzer älterer Ubuntus können die aktuelle Version über eine Paketquelle bekommen. Dazu den Befehl:
#sudo add-apt repository ppa:epoptes/ppa

ausführen und dann wie oben beschrieben Epoptes installieren.

Fertige Epoptes-Pakete gibt es auch für Debian und OpenSuse. Die Lizenz des Projekts und der offene Quellcode erlauben es auch die Software für andere Distributionen zu bauen.

Kleiner Bugfix

Im Installationsskript von epoptes-client ist ein Fehler…es wird „vergessen“ einen Cache-Ordner anzulegen, ohne den einige Mechanismen (Presentation; Bildschirmsperre) nicht funktionieren.

Anlegen eines Cache-Ordners im Verzeichnis des Template-Benutzers (i.d.R linuxadmin):

#mkdir -p /home/linuxadmin/.config/epoptes

Wegkopieren der wesentlichen Konfigurations- und Programmdateien

Man kopiert in diesem Schritt alle wesentlichen Programmkomponenten und Konfigurationsdateien von epoptes-client und epoptes-server (epoptes) weg (per ssh oder auf einen Stick) und löscht diese auf dem Masterclient, so dass die wesentlichen Bestandteile von Epoptes nicht mehr im Betriebsystem vorhanden sind.

Folgende Dateien sind zu sichern und anschließend auf dem Masterclient zu löschen:

…in /etc:

  • /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

…in /usr:

  • /usr/bin/epoptes
  • /usr/sbin/epoptes-client
  • /usr/share/applications/epoptes.desktop


Die Ordner, in denen die Dateien liegen sollten nicht gelöscht werden.

Image mit Linbo

In diesem Schritt wird vom Masterclient ein neues Image mit Linbo erstellt, in dem Epoptes nur mit den verbliebenen Dateien enthalten ist.


Einrichtung und Konfiguration von Epoptes pro EDV-Raum mittels universellem Linbo-Postsync-Skript

Zum besseren Verständis wird die folgende Doku davon ausgehen, dass Epoptes im Raum „muster“ mit den Clients muster-01, muster-02,… und dem Lehrerrechner muster-le (mit IP 10.16.5.100) eingerichtet werden soll. Deweiteren wird vorausgesetzt, dass auf dem Server das aktuelle (nach 19.11.2014) Universelle - Linbo - Postsyncskript gemäß der Anleitung eingerichtet ist und der Umgang damit klar ist! Hier ist zu beachten, dass der Muster-Linux-Client der lml und die Postsyncskripte nicht (!) parallel gepfelgt werden. Sie unterliegen auch keinem automatischen Update. Man muss also selbst überprüfen, ob man das aktuelle Postsyncskript installiert hat, welches die im Folgenden genannten Operationen ausführt.

In füheren Versionen dieses Skriptes fehlte:
  • die Option –delete im rsync-Befehl,
  • der Befehl zum patchen der /etc/hosts,
  • die Anpassung der Rechte von /etc/epoptes/server.key.

Ohne diese Schalter funktioniert die nachfolgende Einrichtung nicht!


Einrichtung der Epoptes Clients

Innerhalb des Postsync-Vereichnisses auf dem Server wird der Ordner muster angelegt und folgende Verzeichnispfade samt zuvor (s. oben) gesicherten Dateien und Konfigurationen eingefügt, angepasst, erstellt:

1. Datei/Verzeichnispfad:

  • …/muster/etc/default/epoptes-client: (←- Rechte 644)
# The server where epoptes-client will be connecting to.
# If unset, thin client user sessions running on the server will try to connect
# to "localhost", while thin client root sessions and fat or standalone clients
# will try to connect to "server".
# LTSP automatically puts "server" in /etc/hosts for thin and fat clients,
# but you'd need to put "server" in DNS manually for standalone clients.
#SERVER=muster-le

# The port where the server will be listening on, and where the client will try
# to connect to. For security reasons it defaults to a system port, 789.
#PORT=789

# Set Wake On LAN for devices that support it. Comment it out to disable it.
#WOL=g
  • Notwendige Konfigurationsanpassung:
  • #SERVER=server …hier muss das Kommentarzeichen entfernt werden und der Hostname des Lehrerrechners des jeweiligen Raumes eingetragen werden, d.h. im Beispiel muster-le. Es wurde beobachtet, dass sich der Clientdienst sofort nach dem Start wieder beendet hat, obwohl die Namensauflösung auf dem Client (ping muster-le) funktioniert hat. Hier brachte es Abhilfe, die IP der Rechners muster-le einzutragen.
  • #PORT=789 …hier das Kommentrazeichen entfernen.
  • #WOL=g …will man Rechner mit Epoptes aufwecken können, so muss das Kommentarzeichen vor WOL entfernt werden.

2. Datei/Verzeichnispfad:

  • …/muster/etc/epoptes/server.crt: (←- Rechte 644)
  • …/muster/etc/init.d/epoptes-client (←- Rechte 755)

3. Datei/Verzeichnispfad

  • …/muster/etc/xdg/autostart/epoptes-client.desktop: (←- Rechte 644)
[Desktop Entry]
Name=Epoptes client service
Name[el]=Υπηρεσία πελάτη του Epoptes
Comment=Epoptes computer lab administation tool client service
Comment[el]=Υπηρεσία πελάτη του λογισμικού διαχείρισης εργαστηρίων Epoptes
Exec=/usr/sbin/epoptes-client
Icon=epoptes
Terminal=false
Type=Application
Categories=Settings;System;
#X-GNOME-AutoRestart=true
NoDisplay=true
  • Notwendige Konfigurationsanpassung:
  • #X-GNOME-AutoRestart=true …hier sollte das Kommentarzeichen entfernt werden, damit der Client im Falle eines Crashs des Displayservers neustartet

4. Datei/Verzeichnispfad

  • …/muster/etc/hosts: (←-Rechte 644)
# Diese Datei wird per postsync gepatcht. Zu bearbeiten ist sie auf dem Server.
# HOSTNAME wird im Postsyncskript mit dem echten Namen gepatcht
127.0.0.1    HOSTNAME

#Die nächste Zeile enthält die Hostnamen so, wie sie auf dem Server eingetragen sind...
#SERVERIP server.linuxmuster-net.lokal server
# damit CUPS zufrieden ist, muss noch diese Zeile hier dazu:
#SERVERIP  server.lokal server.local

#Server für epoptes
10.16.5.100 muster-le
  • Notwendige Konfigurationsanpassung:
  • #Server für epoptes …hier die IP und den Hostnamen des Lehrerrechners eintragen; im Beispiel also 10.16.5.100 muster-le

4. Datei/Verzeichnispfad

  • …/muster/usr/sbin/epoptes-client: (←- Rechte 755)

Einrichtung der Epoptes Servers - Lehrerrechner

Innerhalb des Postsync-Vereichnisses auf dem Server wird der Ordner muster-le angelegt und folgende Verzeichnispfade samt zuvor (s. oben) gesicherten Dateien und Konfigurationen eingefügt, angepasst, erstellt:

1. Datei/Verzeichnispfad:

  • …/muster-le/etc/default/epoptes: (←-Rechte 644)
# The port where the server will be listening on, and where the client will try
# to connect to. For security reasons it defaults to a system port, 789.
#PORT=789

# Epoptes server will use the following group for the communications socket.
# That means that any user in that group will be able to launch the epoptes UI
# and control the clients.
SOCKET_GROUP=epoptes
  • Notwendige Konfigurationsanpassung:
  • SOCKET_GROUP= …hier muss die Gruppe epoptes entfernt und die Gruppe teachers eingetragen werden.

2. Datei/Verzeichnispfad:

  • …/muster-le/etc/epoptes/server.key: (←-Rechte 644)
  • …/muster-le/etc/init.d/epoptes (←- Rechte 755)

3. Datei/Verzeichnispfad:

  • …/muster-le/etc/hosts: (←- Rechte 644)
# Diese Datei wird per postsync gepatcht. Zu bearbeiten ist sie auf dem Server."
# Pfad: ${linbodir}/${universalpostsyncdir}/${patchclass}/${HOSTS}

# HOSTNAME wird im Postsyncskript mit dem echten Namen gepatcht
127.0.0.1    HOSTNAME

#Die nächste Zeile enthält die Hostnamen so, wie sie auf dem Server eingetragen sind...
#SERVERIP server.windeck-gymnasium.de server

# damit CUPS zufrieden ist, muss noch diese Zeile hier dazu:
#SERVERIP  server.lokal server.local

4. Datei/Verzeichnispfad:

  • …/muster-le/usr/bin/epoptes: (←-Rechte 755)

5. Datei/Verzeichnispfad:

  • …/muster-le/usr/share/applications/epoptes.desktop: (←- Rechte 644)
[Desktop Entry]
Name=Epoptes iTalc-Ersatz
Comment=Epoptes computer lab administration tool
TryExec=/usr/bin/epoptes
Exec=/usr/bin/epoptes
Icon=epoptes
Terminal=false
Type=Application
Categories=Network;RemoteAccess;
X-Ubuntu-Gettext-Domain=epoptes
  • Notwendige Konfigurationsanpassung:
  • Name=Epoptes… …hier kann man noch eine Bezeichung einfügen, die das Wort „iTalc*“ enthält, so dass Epoptes in der unity-dash auch bei der Suche nach iTalc erscheint…erleichtert den Kollegen den Umstieg!

Anlegen von Dummyfiles

Durch die Struktur des Postsync-Skripts (erst Synchronisation des Raums (im Beispiel: muster), dann Synchronisation des Lehrerrechners (im Beipiel (muster-le)) hat man jetzt das Problem, dass der Epoptes-Client auch auf dem Epoptes-Server läuft, was zu Problemen führt. Die Lösung ist einfach. Man legt innerhalb des im Postsync-Vereichniss auf dem Server angelegten Ordners muster-le leere epoptes-client Dummyfiles an. Damit werden bei der Synchronisation die epoptes-client Dateien durch leere Dateien ersetzt…

Es sind also folgende leere Dateien/Ordner zu erstellen:

in …muster-le/etc:

  • default/epoptes-client
  • xdg/autostart/epoptes-client.desktop
  • init.d/epoptes-client

in …muster-le/usr:

  • sbin/epoptes-client
Der Befehl dazu ist z.B. für die erste Zeile von oben:
#touch /var/linbo/linuxmuster-client/<PATCHKLASSE>/muster-le/etc/default/epoptes-client

Probleme und deren Lösung

Alle bisher angemeldeten User werden angezeigt

In manchen Installationen tritt der Effekt auf, dass sich die Clients nicht vom Server abmelden. Dann erscheinen die „Überwachungsbildschirme“ mehrfach mit verschiedenen Login-Namen auf dem Lehrerrechner. Die Ursache ist, dass er epoptes-client beim Abmelden nicht beendet wird. Die Quick&Dirty Lösung, die bei mir funktioniert ist folgende:

Statt epoptes-client in /etc/xdg/autostart starten zu lassen, starten wir es über die „upstart“-Skripte in der Benutzerkonfiguration.

Per Universellem Postsync-Skript lässt sich das erledigen, ohne ein neues Image schreiben zu müssen. Es müssen auf den Linux-Clients im Homeverzeichnis des Vorlagenbenutzers (linuxadmin im trusty.cloop) folgende zwei Dateien angelegt werden:

/home/linuxadmin/.config/upstart/startEpoptes.conf
description "Desktop Start Task"
start on desktop-start
task
script
  /usr/sbin/epoptes-client &
end script

und

/home/linuxadmin/.config/upstart/stopEpoptes.conf
description "Desktop Beenden Task"
start on session-end
task
script
  kill $(ps aux | grep "epoptes-client$" | grep -v grep | sed -e "s/  */ /g" | cut -d " " -f2)
end script

Die „Bash-Magic-Zeile“ für das Killen tut das, was nach meinem Verständnis das Kommando „pkill epoptes-client“ tun sollte. Das hat aber bei mir nicht funktioniert und in der Kürze der Zeit war das das Nächstbeste, was mir eingefallen ist.

Schlussbemerkungen

Die o.g. Anpassung muss für jeden EDV-Raum einmal gemacht werden. Nach einem synchronisierten Neustart ist dann Epoptes im jeweiligen Raum eingerichtet und kann benutzt werden.

Weitere Informationen zu Epoptes finden sich hier:

 [[anwenderwiki:linuxclient:epoptes]] anwenderwiki/linuxclient/epoptes.txt · Zuletzt geändert: 2017/05/19 15:46 von 127.0.0.1