7. 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.
7.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
7.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.
7.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.
7.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
,ERROR
undCRITICAL
mit 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
yes
gesetzt ist, werden keine Schülerdaten heruntergeladen und importiert.
- ucsschool/import/lusd/skip_teachers#
Wenn diese Variable auf
yes
gesetzt 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_LUSD
erstellen.
7.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-run
ausgeführt werden soll oder nicht. Mehr Informationen zumdry-run
entnehmen Sie dem Abschnitt Konfiguration entnehmen. Erlaubte Werte sind:true
undfalse
mit dem Standardwertfalse
.
- skip-fetch#
Diese Einstellung dient Software-Entwicklern zum Testen der LUSD Import Software. Erlaubte Werte sind
true
undfalse
. Der Standardwert istfalse
. Bei dem Werttrue
ruft 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
,ERROR
undCRITICAL
mit dem StandardwertINFO
.
- skip-students#
Ist diese Option gesetzt, werden keine Schülerdaten importiert.
- skip-teachers#
Ist diese Option gesetzt, werden keine Lehrerdaten importiert.
7.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:
personalUID
wird für Lehrkräfte als
record_uid
verwendet. Bitte beachten Sie, dass diepersonalUID
fü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.schuelerUID
wird für Schüler als
record_uid
verwendet.vorname
wird für Lehrkräfte als
firstname
verwendet.nachname
wird für Lehrkräfte als
lastname
verwendet.schuelerVorname
wird für Schüler als
firstname
verwendet.schuelerNachname
wird für Schüler als
lastname
verwendet.klassenname
wird für Schüler als
school_classes
verwendet.klassenlehrerKlassen
undklassenlehrerVertreterKlassen
wird für Lehrkräfte als
school_classes
verwendet.
7.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 7.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.
7.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
.
7.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ässig 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.
Jeder Schüler und jede Lehrkraft besitzen eine dienststellennummer
,
die als record_uid
verwendet wird.
Um die Nutzer der Schule korrekt zu migrieren,
müssen Sie für jedes Benutzerkonto eines Schülers und jeder Lehrkraft im LDAP die dazugehörige Dienststellennummer einmalig in Erfahrung bringen
und als die neue record_uid
im LDAP eintragen.
Ein entsprechender Mechanismus zur Zuordnung der existierenden Daten zu Dienststellennummern kann nicht automatisch vom LUSD Import durchgeführt werden.
Sie müssen eine geeignete Strategie entwickeln, die auf Ihre Datenstruktur Anwendung findet.
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.