====== Infos zu ernest, dem Info-Server ====== Der Informatikserver stellt eine Umgebung zur Verfügung, in der * Jeder Schüler Webspace mit PHP hat. * Einen Zugang zu seinem Webspace via SCP hat, wobei er keine Shell auf dem Server bekommt und in seinem Homeverzeichnis "eingesperrt" ist. * Jeder Schüler eine Datenbank hat, auf die er via PHPMyAdmin zugreifen kann. All diese Features werden nach der ersten Anmeldung des Schülers mit seinen Benutzerdaten aus dem Schulnetz automatisch eingerichtet. ===== Apache Webserver ===== Die Document Root von apache ist ''/home/srv/www/''. Alle Dateien und Verzeichnisse darin sind via * ''http://servername/'' bzw. * ''http://servername/'' erreichbar. Hier kann man zum Beispiel Anleitungen Arbeitsaufträge, Wikis, oder was auch immer abgelegt werden. Jeder Benutzer hat in seinem Heimatverzeichnis ein Unterverzeichnis ''public_html'', alle Dateien und Verzeichnisse in diesem UVZ sind über die Adresse * ''http://servername/~'' erreichbar. ==== MySQL Datenbank ==== Das root-Passwort wird aus der Konfigurationsdatei ''/etc/ernest.conf'' gelesen und enstprechend gesetzt. In der Datei ''/root/.my.cnf'' wird es ebenfalls hinterlegt, so dass der Benutzer ''root'' ohne Eingabe eines Passworts von der Kommandozeile aus mit den Datenbanken arbeiten kann, das ist nötig, damit das unten beschriebene Skript automatisch Datenbanken für die Schüler anlegen kann. PHPMyAdmin ist unter der Adresse ''http://servername/phpmyadmin/'' erreichbar. Die Zugangsdaten zu den Datenbanken können die Lehrer für alle Schüler der Datei ''/home/srv/mysql.log'' entnehmen. (FIXME) ==== Automatische User"verwaltung" ==== Jeder Schüler kann sich via ssh an ernest anmelden, wird allerdings in eine changeroot Umgebung eingesperrt, so dass er nicht aus seinem Homeverzeichnis herauswechseln kann. Außerdem haben die LDAP-Nutzer keine Shell, sondern nur Funktionen zum Dateitransfer zur Verfügung. Zugriff sollte mit Nautilus und WinSCP funktionieren. {{ :anwenderwiki:informatikserver:ernestssh.png?400|}} **Die erste Anmeldung schlägt immer fehl**, alle 10 Minuten prüft ein Skript (/usr/local/sbin/ernest.sh) ob Aktionen nötig sind und legt wenn nötig Zugriffsrechte, Datenbanken und Links korrekt an. Die Lehrer werden innerhalb von /home eingesperrt, können also alle Schülerhomes betreten und die Dateien in /home/srv/ ansehen: * **apache_userdirs**: Verzeichnis mit Links zu den public_html Verzeichnissen der Schüler, nötig für apache. * **ernest.log**: Logdatei des Benutzerverwaltungsskripts * **mysql.log**: Passwörter der automatisch erzeugten Datenbanken * **students.md5**: Status Datei * **teachers.md5**: Status Datei * **www**: Document root von Apache, enthält die öffentlichen Seiten von ernest, die keine Benutzerseiten sind. ====== Inbetriebnahme der Appliance ====== [[https://www.dropbox.com/s/3ab5pe7ltrvxsyc/ernest1.2.ova|Download der virtualbox-Appliance]] Während unter VirtualBox das Einbinden, Starten und Anmelden der Appliance funktioniert, sind bei anderen Virtualisierungslösungen (z.B. KVM/qemu) folgende Anpassungen **vor** dem Starten (d.h. von außen) nötig. Am besten geht das, in dem man die Festplatte in einem anderen VM-Client einbindet und die Dateien von dort editiert: * Die IP-Adresse in der Appliance muss geändert werden: ''/etc/network/interfaces'' * Das root-Passwort sollte geändert werden: ''/etc/shadow'' Der administrative Benutzer hat die Anmeldedaten: nwb muster2012 Dieses Passwort sollte man mit dem Befehl passwd ändern. Anschließend bearbeitet man die Konfigurationsdatei ''/etc/ernest.conf'' # sudo nano /etc/ernest.conf Dort müssen angepasst werden: * das mysql-Passwort * die BaseDN und * die URI des LDAP Servers Anschließend führt man den Befehl # sudo ernest-turnkey.sh aus. Nach einem Neustart sollte der Übungsserver einsatzbereit sein. Wenn man an dieser Stelle einen Snapshot anlegt, kann man am Ende des Schuljahres die gesamte Umgebung einfach zurücksetzen. ===== Weitere Hinweise ===== * Wenn "ldapsearch" als Testwerkzeug verwendet werden will, sollte ''/etc/ldap/ldap.conf'' auch noch konfiguriert werden, dazu ''BASE'' und ''URI'' entsprechend wie in ''/etc/ernest.conf'' anpassen.