Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:linuxclient:epoptes]] 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

anwenderwiki:linuxclient:epoptes [2017/05/19 15:46] (aktuell)
Zeile 1: Zeile 1:
 +{{tag>​linuxclient software classroommanagement }}
 +
 +======= Epoptes - Alternative für ITalc in reinen Linuxumgebungen =======
 +
 +[[http://​www.epoptes.org/​|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 [[https://​github.com/​ypid/​ansible-epoptes|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...\\
 +\\
 +
 +<​note>​Um Epoptes einrichten zu können sollte man sich mit Terminal, Editoren und dem [[anwenderwiki:​linbo:​postsync_scripte:​linux_universalscript|Universellen Linbo-Postsyncskript]] auskennen.</​note> ​
 +
 +----
 +
 +==== Installation von epoptes und epoptes-client ====
 +
 +Das ist in Ubuntu schnell erledigt:
 +
 +<​code>​
 +#sudo apt-get update && sudo apt-get install epoptes-client epoptes
 +</​code>​
 +
 +Eventuelle Konfigurationsabfragen können einfach mit den vorgegebenen Defaulteinstellungen übernommen werden. Die eigentliche Konfiguration erfolgt später per Hand.
 +
 +<note important>​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: <​code>#​sudo add-apt repository ppa:​epoptes/​ppa</​code>​ ausführen und dann wie oben beschrieben Epoptes installieren.</​note>​
 +<note tip>​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.</​note>​
 +
 +----
 +
 +==== 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):​
 +<​code>​
 +#mkdir -p /​home/​linuxadmin/​.config/​epoptes
 +</​code>​
 +
 +----
 +
 +==== 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//​
 +\\
 +<note important>​**Die Ordner, in denen die Dateien liegen sollten nicht gelöscht werden.**
 +</​note>​
 +
 +----
 +
 +==== 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) [[anwenderwiki:​linbo:​postsync_scripte:​linux_universalscript|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.
 +
 +<note important>​**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!**
 +</​note>​
 +----
 +
 +=== 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)
 +<​code>​
 +# 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
 +</​code>​
 +
 +  * **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)
 +
 +<​code>​
 +[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
 +</​code>​
 +
 +  * **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)
 +
 +<​code>​
 +# 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
 +</​code>​
 +
 +  * **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)
 +<​code>​
 +# 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
 +</​code>​
 +
 +  * **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)
 + 
 +<​code>​
 +# 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
 +</​code>​
 +
 +**4. Datei/​Verzeichnispfad:​**
 +
 +  * //​.../​muster-le/​usr/​bin/​epoptes://​ (<​--Rechte 755)
 +
 +**5. Datei/​Verzeichnispfad:​**
 +
 +  * //​.../​muster-le/​usr/​share/​applications/​epoptes.desktop://​ (<-- Rechte 644)
 +
 +<​code>​
 +[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
 +</​code>​
 +
 +  * **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//​
 +
 +<note tip>Der Befehl dazu ist z.B. für die erste Zeile von oben:\\
 +<​code>#​touch /​var/​linbo/​linuxmuster-client/<​PATCHKLASSE>/​muster-le/​etc/​default/​epoptes-client</​code>​
 +</​note>​
 +
 +----
 +
 +
 +===== 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:
 +
 +<code bash /​home/​linuxadmin/​.config/​upstart/​startEpoptes.conf>​
 +description "​Desktop Start Task"
 +start on desktop-start
 +task
 +script
 +  /​usr/​sbin/​epoptes-client &
 +end script
 +</​code>​
 +
 +und 
 +<code bash /​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
 +</​code>​
 +
 +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:
 +
 +  * [[http://​wiki.ubuntuusers.de/​Epoptes| Epoptes auf Ubuntuusers.de]]
 +  * [[http://​www.epoptes.org/​| Offizielle Epoptes - Seite]]
  
 [[anwenderwiki:linuxclient:epoptes]] anwenderwiki/linuxclient/epoptes.txt · Zuletzt geändert: 2017/05/19 15:46 (Externe Bearbeitung)