4.4. LUSD-Import#
Dieses Kapitel richtet sich an Administratoren, die Benutzerdaten aus der zentralen Datenbank für Lehrer und Schüler des hessischen Kultusministeriums importieren wollen.
UCS@school beinhaltet optionale Komponenten für die Importsoftware, mit der sich ein automatischer und periodischer Import von Benutzerdaten aus LUSD nach UCS@school einrichten lässt.
Siehe auch
- LUSD - Lehrer- und Schülerdatenbank | Digitale Schule Hessen
für Informationen zur Lehrer- und Schülerdatenbank in Hessen.
4.4.1. Installation#
Die Komponenten für den LUSD Import werden über das Paket ucs-school-import-lusd auf einem UCS Primary oder Backup Directory Node installiert.
Auf der Kommandozeile installieren Sie das Paket mit dem folgenden Befehl:
$ univention-install ucs-school-import-lusd
$ mkdir -p /var/lib/ucs-school-import-lusd/
Um Daten aus LUSD abrufen zu können, muss sich das System beim hessischen Kultusministerium authentifizieren.
Dazu ist ein privater Schlüssel erforderlich, den Sie als Datei /var/lib/ucs-school-import-lusd/auth_key im UCS-System
ablegen müssen.
Wichtig
Um den privaten Schlüssel zu erhalten, wenden Sie sich bitte an Ihre Kontaktperson bei Univention.
Sie müssen den Schlüssel manuell auf das UCS@school System kopieren.
Stellen Sie außerdem mit folgendem Befehl sicher, dass die Datei nur von dem Benutzer root ausgelesen werden kann.
$ chown root:root /var/lib/ucs-school-import-lusd/auth_key
$ chmod 600 /var/lib/ucs-school-import-lusd/auth_key
4.4.2. Verwendung#
Das Paket ucs-school-import-lusd erstellt während der Installation einen Cron Job, der den LUSD Import täglich ausführt.
Der Name des Jobs lautet LUSD_import.
Der Cron Job wird dabei durch UCR Variablen konfiguriert, wie im
UCS Handbuch
beschrieben.
Für den Cron Job wählt das Paket ucs-school-import-lusd einen zufälligen Zeitpunkt innerhalb des Betriebszeitraumes der LUSD Schnittstelle. Die LUSD Schnittstelle stellt ihre Daten nur während des Betriebszeitraum von 06:00 bis 22:00 Mitteleuropäische Zeit zur Verfügung.
Warnung
Der Cron Job lässt sich beliebig anpassen und auf eine andere Zeit verlegen. Beachten Sie dabei, dass die LUSD Schnittstelle nur während des Betriebszeitraums zur Verfügung steht.
Der Cron Job führ das Skript /usr/share/ucs-school-import-lusd/scripts/lusd_import aus.
Als Administrator können Sie das Skript auch manuell starten, um einen LUSD Import durchzuführen:
$ /usr/share/ucs-school-import-lusd/scripts/lusd_import
Dabei lädt das Skript die Daten für alle konfigurierten Schulen herunter und importiert diese über die UCS@school Importsoftware. Die Parameter, die das Skript akzeptiert, erläutert der Abschnitt Kommandozeilenparameter.
Der Abschnitt Konfiguration erläutert die Konfiguration von Schulen für den LUSD Import.
Der LUSD Import verwendet zwar ein eigenes Skript, um die benötigten Daten vor dem Import herunterzuladen, ist aber ansonsten ein ganz normaler SiSoPi UCS@school Import. LUSD Import verwendet daher alle Hooks, die für den Import konfiguriert worden sind.
Bemerkung
Die LUSD Datenbank verlangt nicht, dass sich Schüler in einer Schulklasse befinden müssen.
Da dies allerdings im Datenmodell von UCS@school vorgesehen ist, werden alle Schüler ohne Schulklasse
automatisch in eine Klasse mit dem Namen lusd_noclass eingetragen.
Es gilt allerdings zu beachten, dass der LUSD Import spezielle Konfigurationsdateien verwendet.
Diese befinden sich im Ordner /usr/share/ucs-school-import-lusd/import-config/.
Sollten die dort hinterlegten Einstellungen nicht den Anforderungen Ihrer Umgebung entsprechen, können neue Konfigurationen
von diesen abgeleitet werden.
Im Abschnitt Konfiguration ist beschrieben, wie sich andere Konfigurationsdateien für den LUSD Import
nutzen lassen.
4.4.2.1. Logging#
Die Logs für den LUSD Import befinden sich in der Datei /var/log/univention/ucs-school-import-lusd.log.
Diese Datei enthält die Log Einträge des Kommandozeilenprogramms lusd_import.
Da es sich letztlich um einen normalen UCS@school Import handelt, findet man zusätzliche Informationen in den UCS@school Import Logs.
Wenn Sie als Administrator das Log Level auf DEBUG setzen,
fügt das LUSD Kommandozeilenprogramm zusätzlich das gesamte Log des UCS@school Import Prozesses der Log Datei
des LUSD Kommandozeilenprogramms hinzu.
4.4.3. Konfiguration#
Der LUSD Import wird über UCR konfiguriert. Folgende Variablen sind verfügbar:
- ucsschool/import/lusd/log_level#
Bestimmt das Log Level für die Log Einträge, die dieser Import generiert. Erlaubte Werte sind:
DEBUG,INFO,WARNING,ERRORundCRITICALmit dem StandardwertINFO.
- ucsschool/import/lusd/student_import_config_path#
Bestimmt den Dateipfad zu der Konfigurationsdatei für den Import von Schülern. Dabei handelt es sich um eine normale Konfigurationsdatei des Imports, wie sie im Abschnitt Konfiguration beschrieben ist. Der Standardwert ist
/usr/share/ucs-school-import-lusd/import-config/user_import_lusd_student.json. Überschreiben Sie diese Einstellung nur, wenn der Import von Schülerkonten eine von der Standardkonfiguration abweichende Konfiguration verwenden soll.
- ucsschool/import/lusd/teacher_import_config_path#
Bestimmt den Dateipfad zu der Konfigurationsdatei für den Import von Lehrkräften. Dabei handelt es sich um eine normale Konfigurationsdatei des Imports, wie sie im Abschnitt Konfiguration beschrieben ist. Der Standardwert ist
/usr/share/ucs-school-import-lusd/import-config/user_import_lusd_teacher.json. Überschreiben Sie diese Einstellung nur, wenn der Import von Lehrerkonten eine von der Standardkonfiguration abweichende Konfiguration verwenden soll.
- ucsschool/import/lusd/skip_students#
Wenn diese Variable auf
yesgesetzt ist, werden keine Schülerdaten heruntergeladen und importiert.
- ucsschool/import/lusd/skip_teachers#
Wenn diese Variable auf
yesgesetzt ist, werden keine Lehrerdaten heruntergeladen und importiert.
- ucsschool/import/lusd/school_authority#
Name des Schulträgers, der für die Schulen verantwortlich ist. Der Schulträger wird benötigt, um Fehler bei der Eingabe Dienststellennummer zu erkennen. Es werden nur Dienststellennummern vom Import akzeptiert, die dem Schulträger zugeordnet sind.
- ucsschool/import/lusd/schools/.*#
Damit die Daten einer Schule importiert werden können, müssen Sie als Administrator diese erst für den LUSD Import konfigurieren. Da die Möglichkeit besteht, dass Schulen in der zentralen Datenbank für Lehrer und Schüler des hessischen Kultusministeriums eine andere Bezeichnung haben als in UCS@school, müssen Sie die Beziehung zwischen Schulen in UCS@school und dem LUSD explizit herstellen.
Dafür müssen Sie für jede Schule, für die der LUSD Import Daten importieren soll, eine UCR Variable in der Form
ucsschool/import/lusd/schools/SCHULKUERZEL=DIENSTSTELLENNUMMER_IN_LUSDerstellen.
4.4.3.1. Kommandozeilenparameter#
Neben den UCR Variablen bietet das Skript /usr/share/ucs-school-import-lusd/scripts/lusd_import
noch einige Optionen, die Sie beim direkten Aufruf einstellen können.
Optionen auf der Kommandozeile überschreiben Einstellungen in UCR.
- dry-run#
Diese Einstellung wird direkt an die UCS@school Importsoftware weitergegeben und bestimmt, ob ein
dry-runausgeführt werden soll oder nicht. Mehr Informationen zumdry-runentnehmen Sie dem Abschnitt Konfiguration entnehmen. Erlaubte Werte sind:trueundfalsemit dem Standardwertfalse.
- skip-fetch#
Diese Einstellung dient Software-Entwicklern zum Testen der LUSD Import Software. Erlaubte Werte sind
trueundfalse. Der Standardwert istfalse. Bei dem Werttrueruft der LUSD Import keine Daten ab, sondern arbeitet mit den bereits vorhandenen Daten. Belassen oder setzen Sie den Wert im allgemeinen Betrieb auffalse.
- log-level#
Bestimmt das Log Level für die Log Einträge, die dieser Import generiert. Erlaubte Werte sind:
DEBUG,INFO,WARNING,ERRORundCRITICALmit dem StandardwertINFO.
- skip-students#
Ist diese Option gesetzt, werden keine Schülerdaten importiert.
- skip-teachers#
Ist diese Option gesetzt, werden keine Lehrerdaten importiert.
4.4.3.2. Importkonfiguration#
Der LUSD Import verwendet spezielle Konfigurationsdateien.
Diese befinden sich im Ordner /usr/share/ucs-school-import-lusd/import-config/.
Dabei werden die folgenden Werte aus der LUSD Datenbank standardmässig nach UCS@school übernommen:
personalUIDwird für Lehrkräfte als
record_uidverwendet. Bitte beachten Sie, dass diepersonalUIDfür eine Lehrkraft für jede Schule unterschiedlich ist. Das bedeutet, dass eine Lehrkraft für jede Schule in der sie sich befindet ein eigenes Benutzerkonto bekommt.schuelerUIDwird für Schüler als
record_uidverwendet.vornamewird für Lehrkräfte als
firstnameverwendet.nachnamewird für Lehrkräfte als
lastnameverwendet.schuelerVornamewird für Schüler als
firstnameverwendet.schuelerNachnamewird für Schüler als
lastnameverwendet.klassennamewird für Schüler als
school_classesverwendet.klassenlehrerKlassenundklassenlehrerVertreterKlassenwird für Lehrkräfte als
school_classesverwendet.
4.4.4. Semesterstufen#
Die LUSD Datenbank exportiert Informationen zu den Semesterstufen von Schülern. Diese Informationen können vor allem für externe Dienste nützlich sein, die auf ein UCS@school LDAP zugreifen.
In vielen Fällen ist es ausreichend, ein Mapping des LUSD Attributes stufeSemester
auf ein erweitertes Attribut in UCS@school einzurichten,
wie im Abschnitt Zuordnung von Eingabedaten zu Benutzerattributen beschrieben.
Bemerkung
Die Erstellung eines erweiterten Attributes für das Speichern der Semesterstufe können Sie im Abschnitt zu Erweiterung von UMC-Modulen mit erweiterten Attributen im UCS Handbuch nachlesen.
Sollten Sie die Semesterstufen in einem anderen Format benötigen,
als es die LUSD Datenbank anbietet,
können Sie einen Hook verwenden,
den das Paket ucs-school-import-lusd mitbringt.
Dieser Hook wird als /usr/share/ucs-school-import-lusd/hooks/lusd_class_level_hook.py abgelegt.
Die Verwendung von Hooks können Sie im Abschnitt Hooks nachlesen.
Um diesen Hook zu aktivieren, verwenden Sie den Befehl in Quellcode 4.1 und führen ihn auf dem UCS@school System aus:
$ ln -s /usr/share/ucs-school-import-lusd/hooks/lusd_class_level_hook.py \
/usr/share/ucs-school-import/pyhooks/
Dabei wird die transformierte Semesterstufe in ein erweitertes Attribut mit dem Namen class_level geschrieben.
Bemerkung
Der Hook ist eine generelle Implementierung
und kann gegebenenfalls von Ihren Anforderungen abweichen.
Wenn dies der Fall ist,
kopieren Sie den Hook und passen ihn Ihren Anforderungen entsprechend an.
Dazu ist die Anpassung der Felder UDM_CLASS_LEVEL_ATTRIBUTE
und REGEX_PATTERNS erforderlich.
Ihre Funktionsweise und Hinweise zur Anpassung
entnehmen Sie der Dokumentation im Quellcode.
4.4.5. Fehlerbehandlung#
Falls es bei dem LUSD Import zu Problemen kommt, finden Sie in diesem Abschnitt einige Möglichkeiten, mit denen Sie eventuell ein Problem selbst lösen können.
Wichtig
Konsultieren Sie immer zuerst die Log Datei, um potentielle Probleme zu identifizieren.
Die Datei mit den Log-Einträgen lautet /var/log/univention/ucs-school-import-lusd.log.
4.4.5.1. Migration existierender Nutzerdaten zum LUSD Import#
Dieser Abschnitt beschreibt, wie Sie eine Schule mit bereits existierenden Nutzerdaten für die Umstellung auf den LUSD Import vorbereiten müssen.
Wollen Sie den LUSD Import für eine Schule einsetzen, für die schon Daten im LDAP existieren, müssen Sie vor dem ersten Import dafür sorgen, dass der Import die Daten aus der LUSD Datenbank korrekt den schon existierenden Benutzerkonten für Schüler und Lehrkräfte zuweist. Ansonsten werden die existierenden Benutzerkonten gelöscht und dann neu angelegt.
Da es sich bei dem LUSD Import um einen UCS@school Import handelt,
werden Nutzer über die Kombination der Werte von source_uid und record_uid identifiziert.
Diese beiden Werte müssen in den existierenden Daten so angepasst werden,
dass sie für die jeweiligen Nutzer mit den Daten aus dem LUSD Import übereinstimmen.
Die source_uid wird über die Konfigurationsdatei definiert
und für den LUSD Import standardmäßig auf LUSD_JSON_API gesetzt.
Sie können entweder die source_uid bei allen existierenden Nutzern der Schule auf den Wert LUSD_JSON_API setzen
oder Sie passen die Konfiguration des LUSD Imports so an,
dass Ihre existierende source_uid verwendet wird.
Die record_uid wird beim LUSD Import direkt aus der Datenbank bezogen.
Um die Nutzer der Schule korrekt zu migrieren,
müssen Sie für jeden Nutzer im LDAP die dazugehörige schuelerUID oder personalUID einmalig in Erfahrung bringen
und als die neue record_uid im LDAP eintragen.
Tab. 4.1
zeigt die Gegenüberstellung.
Ein entsprechender Mechanismus zur Zuordnung der existierenden Daten aus dem LUSD XML Import zu der neuen LUSD API wird nicht offiziell unterstützt.
Sie müssen eine geeignete Strategie entwickeln, die auf Ihre Datenstruktur Anwendung findet.
Rolle |
UCS@school |
LUSD |
|---|---|---|
Schüler |
|
|
Lehrer |
|
|
Wenn Sie beide Werte bei den existierenden Nutzern angepasst haben, kann der LUSD Import gestartet werden und existierende Nutzer werden korrekt aktualisiert.
Bemerkung
Aufgrund der unterschiedlichen und teils sehr spezifischen Handhabung der record_uid an den verschiedenen Schulen,
kann die Dokumentation an dieser Stelle kein allgemein hilfreiches Beispiel anbieten.