4. Verwaltung von Schulen über Importskripte#
UCS@school bietet für viele der regelmäßig wiederkehrenden Verwaltungsaufgaben spezielle UMC-Module und Assistenten an, die beim Anlegen, Modifizieren und Löschen von z.B. Schulen, Benutzerkonten und Rechnern unterstützen. Diese werden in Verwaltung von Schulen über die Univention Management Console beschrieben).
Ergänzend hierzu gibt es Programme für die Kommandozeile, die auch eine automatisierte Pflege der UCS@school-Umgebung zulassen und werden nachfolgend beschrieben.
Vorsicht
Seit der UCS@school-Version 3.2 R2 halten die kommandozeilenbasierten Importskripte zu Beginn des jeweiligen Imports den Univention Directory Notifier auf dem Primary Directory Node an. Nach Abschluss des Imports wird der Univention Directory Notifier wieder gestartet.
4.1. Pflege von Benutzerkonten für Schüler, Lehrer und Mitarbeiter#
Für UCS@school gibt es momentan mehrere Möglichkeiten Nutzer in das System zu importieren.
Die Konfiguration des kommandozeilenbasierten Benutzerimports ist in UCS@school - Handbuch zur CLI-Import-Schnittstelle [4] beschrieben.
4.2. Import von Schulklassen#
Beim Import schon Schulklassen ist zu beachten, dass die Klassennamen domänenweit eindeutig sein müssen. Das heißt, eine Klasse 1A kann nicht in mehreren OUs verwendet werden. Daher sollte jedem Klassennamen die OU und ein Bindestrich vorangestellt werden.
Bei der Erstellung von Klassen über das UMC-Modul Klassen (Schulen) geschieht
dies automatisch. Sprechende Namen, wie zum Beispiel Igel
oder
BiologieAG
, sind für Klassennamen ebenso möglich wie
Buchstaben-Ziffern-Kombinationen (10R
).
Beispiele für die Schule gym123
:
gym123-1A
gym123-1B
gym123-2A
gym123-Igel
Der Import von Benutzern erfolgt über das Skript
/usr/share/ucs-school-import/scripts/import_group, das auf dem
Primary Directory Node als Benutzer root
gestartet werden muss. Es erwartet den
Namen einer CSV-Datei als ersten Parameter. Das Dateiformat für die
Gruppen-Importdatei ist wie folgt aufgebaut:
Feld |
Beschreibung |
Mögliche Werte |
Beispiel |
---|---|---|---|
Aktion |
Art der Gruppenmodifikation |
|
|
OU |
OU, in der die Gruppe modifiziert werden soll |
— |
|
Gruppenname |
Der Name der Gruppe |
— |
|
(Beschreibung) |
Optionale Beschreibung der Gruppe |
— |
|
Ein Beispiel für eine Importdatei:
A g123m g123m-1A Klaaassen 1A
A g123m g123m-LK-Inf Leistungskurs Informatik
M g123m g123m-1A Klasse 1A
D g123m g123m-LK-Inf Leistungskurs Informatik
D g123m g123m-R12 Klasse R12
4.3. Vorgehen zum Schuljahreswechsel#
Zum Schuljahreswechsel stehen zahlreiche Änderungen in den Benutzerdaten an. Schüler werden in eine höhere Klasse versetzt, der Abschlussjahrgang verlässt die Schule und ein neuer Jahrgang wird eingeschult.
Ein Schuljahreswechsel erfolgt in vier Schritten:
Eine Liste aller Schulabgänger wird aus der Schulverwaltungssoftware exportiert und die Konten werden über das Import-Skript entfernt (Aktion D, siehe Pflege von Benutzerkonten für Schüler, Lehrer und Mitarbeiter). Die Klassen der Schulabgänger müssen ebenfalls über das Import-Skript für Gruppen entfernt werden.
Die bestehenden Klassen sollten umbenannt werden. Dies stellt sicher, dass Dateien, die auf einer Klassenfreigabe gespeichert werden und somit einer Klasse zugeordnet sind, nach dem Schuljahreswechsel weiterhin der Klasse unter dem neuen Klassennamen zugeordnet sind.
Die ältesten Klassen (die der Abgänger zum Schulende) müssen zuvor gelöscht werden. Die Umbenennung erfolgt über das Skript /usr/share/ucs-school-import/scripts/rename_class, das auf dem Primary Directory Node als Benutzer
root
aufgerufen werden muss. Es erwartet den Namen einer tab-separierten CSV-Datei als ersten Parameter. Die CSV-Datei enthält dabei pro Zeile zuerst den alten und dann den neuen Klassennamen, z.B.gymmitte-6B gymmitte-7B gymmitte-5B gymmitte-6B
Die Reihenfolge der Umbenennung ist wichtig, da die Umbenennung sequentiell erfolgt und der Zielname nicht existieren darf.
Bemerkung
Beim Umbenennen der Klassen-Freigaben werden auch deren Werte für Samba-Name sowie die erzwungene Gruppe automatisch angepasst, sofern diese noch die Standardwerte des UCS@school-Importskriptes aufweisen.
Bei manuellen Änderungen müssen diese Werte nach dem Umbenennen der Klasse nachträglich manuell angepasst werden.
Eine aktuelle Liste aller verbleibenden Schülerdaten wird über das Import-Skript neu eingelesen (Aktion
M
, siehe Pflege von Benutzerkonten für Schüler, Lehrer und Mitarbeiter).Eine Liste aller Neuzugänge wird aus der Schulverwaltungssoftware exportiert und über das Import-Skript importiert (Aktion
A
, siehe Pflege von Benutzerkonten für Schüler, Lehrer und Mitarbeiter).
4.4. Skriptbasierter Import von Netzwerken#
Der skriptbasierte Import von Netzwerken legt IP-Subnetze im LDAP an und konfiguriert diverse Voreinstellungen wie zum Beispiel Adressen von Routern (Gateways), DNS-Server und WINS-Server für diese Subnetze. Darunter fällt zum Beispiel auch ein Adressbereich, aus dem für neuangelegte Systeme automatisch IP-Adressen vergeben werden können.
Der skriptbasierte Import ist insbesondere in Szenarien empfehlenswert, wo UCS für die Verteilung der Netzwerkkonfiguration über DHCP zum Einsatz kommt und damit die Netzwerkkonfiguration von Clients übernimmt. Insbesondere größere UCS@school-Umgebungen profitieren vom skriptbasierten Import von Netzwerken.
In kleineren Umgebungen kann es flexibler sein, wenn Administratoren die Netzwerkeinstellungen über die Univention Management Console vornehmen. UCS erstellt automatisch entsprechende Netzwerkobjekte für das Netzwerk eines Rechnerkontos. Bei der Verwendung von DHCP über UCS und im Unterschied zum skriptbasierten Import müssen Administratoren über die Univention Management Console die DHCP-Richtlinie für Rechnerkonten mit Vorgaben zu Gateway, DNS-Server oder WINS-Server manuell anlegen.
Siehe auch
Univention Corporate Server - Handbuch für Benutzer und Administratoren [2]:
- Konfiguration von Clients durch DHCP-Richtlinien
zum Anlegen einer DHCP Richtlinie mit Vorgaben zu Gateway, DNS-Server oder WINS-Server
- Verwaltung der Rechnerkonten über Univention Management Console Modul
zum Anlegen von Rechnerkonten
Administratoren können Netzwerke auf der Kommandozeile über das Skript
/usr/share/ucs-school-import/scripts/import_networks aus einer
CSV Datei importieren, indem sie es auf dem Primary Directory Node als Benutzer root
starten. Das Skript erstellt Netzwerkobjekte inklusive einer DHCP-Richtlinie
mit Vorgaben zu Gateway, DNS-Server und WINS-Server.
Tab. 4.2 zeigt das Format der Import-Datei. Das Skript import_networks erwartet Tabulatorzeichen zur Trennung der einzelnen Felder. Optionale Felder stehen in Klammern und dürfen in der Import-Datei leer bleiben, zum Beispiel (IP-Adressbereich). Quellcode 4.1 zeigt ein Beispiel.
Feld |
Beschreibung |
Mögliche Werte |
---|---|---|
OU |
OU des zu modifizierenden Netzwerks |
|
Netzwerk |
Netzwerk und Subnetzmaske |
|
(IP-Adressbereich) |
Bereich, aus dem IP-Adressen für neuangelegte Systeme automatisch vergeben werden |
|
(Router) |
IP-Adresse des Routers |
|
(DNS-Server) |
IP-Adresse des DNS-Servers |
|
(WINS-Server) |
IP-Adresse des WINS-Servers |
|
Bemerkung
Quellcode 4.1 verwendet
Tabulatorzeichen zur Trennung der Felder. Nutzen Sie den Link zum
Herunterladen der Importdatei
für die
weitere Verwendung.
g123m 10.0.5.0 10.0.5.1 10.0.5.2 10.0.5.2
g123m 10.0.6.0/25 10.0.6.5-10.0.6.120 10.0.6.1 10.0.6.2 10.0.6.15
Das Skript import_networks verwendet Voreinstellungen, wenn folgende Angaben in der CSV Datei für den Netzwerkimport fehlen:
Netzmaske
255.255.255.0
, wenn im Feld Netzwerk keine Angabe über die Netzmaske vorliegt.IP Adressbereich
X.Y.Z.20-X.Y.Z.250
, wenn im Feld IP-Adressbereich keine Angabe über den Adressbereich vorliegt.
Zur Vereinfachung der Administration der Netzwerke steht zusätzlich das Skript import_router zur Verfügung, das nur den Default-Router für das angegebene Netzwerk neu setzt. Es verwendet das gleiche Format wie import_networks.
4.5. Import von Rechnerkonten#
Rechnerkonten können entweder einzeln über ein spezielles UMC-Modul oder über ein spezielles Import-Skript als Massenimport angelegt werden. Die Rechnerkonten sollten vor dem Domänenbeitritt von z.B. Windows-PCs angelegt werden, da so sichergestellt wird, dass die für den Betrieb von UCS@school notwendigen Informationen im LDAP-Verzeichnis vorhanden sind und die Objekte an der korrekten Position im LDAP-Verzeichnis abgelegt wurden.
Nach dem Anlegen der Rechnerkonten können die PCs über den im UCS-Handbuch beschriebenen Weg der Domäne beitreten.
4.5.1. Skriptbasierter Import von PCs#
Der Import mehrerer PCs erfolgt über das Skript
/usr/share/ucs-school-import/scripts/import_computer, das auf dem
Primary Directory Node als Benutzer root
aufgerufen werden muss. Es erwartet den
Namen einer CSV-Datei als ersten Parameter, die in folgender Syntax definiert
wird. Die einzelnen Felder sind durch ein Tabulatorzeichen zu trennen.
Es ist zu beachten, dass Computernamen domänenweit eindeutig sein müssen. Das
heißt, ein Computer windows01
kann nicht in mehreren OUs verwendet werden.
Um die Eindeutigkeit zu gewährleisten, wird empfohlen, jedem Computernamen die
OU voranzustellen oder zu integrieren (z.B. 340win01
für Schule 340).
Feld |
Beschreibung |
Mögliche Werte |
Beispiel |
---|---|---|---|
Rechnertype |
Typ des Rechnerobjektes |
|
|
Name |
zu verwendender Rechnername |
— |
|
MAC-Adresse |
MAC-Adresse (wird für DHCP benötigt) |
— |
|
OU |
OU; in der das Rechnerobjekt modifiziert werden soll |
— |
|
IP-Adresse (/Netzmaske) oder IP Subnetz |
IP-Adresse des Rechnerobjektes und optional die passende Netzmaske; alternativ das Ziel-IP-Subnetz |
— |
|
(Inventarnr.) |
Optionale Inventarnummer |
— |
|
(Weitere Felder) |
Optionale zusätzliche Attribute |
— |
|
Die Subnetzmaske kann sowohl als Präfix (24
) als auch in Oktettschreibweise
(255.255.255.0
) angegeben werden. Die Angabe der Subnetzmaske ist optional.
Wird sie weggelassen, wird die Subnetzmaske 255.255.255.0
angenommen.
Wird im Feld IP-Adresse (/ Netzmaske) nur ein Subnetz angegeben (z.B.
10.0.5.0
), wird dem Computerobjekt automatisch die nächste freie IP-Adresse
aus diesem IP-Subnetz zugewiesen.
Beispiel für eine Importdatei:
ipmanagedclient routerg123m-01 10:00:ee:ff:cc:02 g123m 10.0.5.1
windows wing123m-01 10:00:ee:ff:cc:00 g123m 10.0.5.5
windows wing123m-02 10:00:ee:ff:cc:01 g123m 10.0.5.6
macos macg123m-01 10:00:ee:ff:cc:03 g123m 10.0.5.7
ubuntu ubuntug123m-01 10:00:ee:ff:cc:04 g123m 10.0.5.8
linux linuxg123m-01 10:00:ee:ff:cc:05 g123m 10.0.5.9
ipmanagedclient printerg123m-01 10:00:ee:ff:cc:06 g123m 10.0.5.250
Die importierten Rechner werden so konfiguriert, dass ihnen die angegebene IP-Adresse automatisch per DHCP zugeordnet wird, sofern auf dem Schulserver der DHCP-Dienst installiert ist, und der angegebene Rechnername über das Domain Name System (DNS) aufgelöst werden kann.
Ab UCS@school 5.0 v2 wird das Ausführen von Python Hooks während des Computer Imports unterstützt (siehe Python-Hooks).
Ab UCS@school 5.0 v3 wird das Ausführen von Python Hooks unterstützt, die ausschließlich während des Computer Imports ausgeführt werden. Sie werden vor bzw. nach den Python Hooks beim Erstellen der UCS@school Objekte ausgeführt.
Ähnlich wie bei den Python-Hooks, muss zur Nutzung der Hook-Funktionalität
eine Python-Klasse erstellt werden, die von ucsschool.importer.utils.computer_pyhook.ComputerPyHook
ableitet. Der Name der Datei mit der abgeleiteten Klasse muss auf .py
enden und die Datei im Verzeichnis
/usr/share/ucs-school-import/pyhooks
abgespeichert werden.
Neben den Funktionalitäten der Python Hooks steht in den Hook Methoden der Parameter
row
als Liste zur Verfügung, der die Werte der CSV Zeile als Liste enthält.
Dies erlaubt es zusätzliche Werte zu setzen.
- class SchoolComputerImportHook#
from typing import List from ucsschool.lib.models.computer import SchoolComputer from ucsschool.importer.utils.computer_pyhook import ComputerPyHook class SchoolComputerImportHook(ComputerPyHook): model = SchoolComputer priority = { "pre_create": 10, "post_create": 20, } def post_create(self, obj: SchoolComputer, row: List[str]) -> None: ... def post_create(self, obj: SchoolComputer, row: List[str]) -> None: ...
4.6. Konfiguration von Druckern an der Schule#
Der Import der Drucker kann skriptbasiert über das Skript
/usr/share/ucs-school-import/scripts/import_printer erfolgen, das auf
dem Primary Directory Node als Benutzer root
aufgerufen werden muss. Es erwartet den
Namen einer CSV-Datei als ersten Parameter, die in folgender Syntax definiert
wird. Die einzelnen Felder sind durch ein Tabulatorzeichen zu trennen.
Feld |
Beschreibung |
Mögliche Werte |
Beispiel |
---|---|---|---|
Aktion |
Art der Druckermodifikation |
|
|
OU |
OU, in der das Druckerobjekt modifiziert werden soll |
— |
|
Druckerserver |
Name des zu verwendenden Druckservers |
— |
|
Name |
Name der Druckerwarteschlange |
— |
|
URI |
URI, unter dem der Drucker erreichbar ist |
— |
|
Die Druckerwarteschlange wird beim Anlegen eines neuen Druckers auf dem im Feld Druckserver angegebenen Druckserver eingerichtet. Das URI-Format unterscheidet sich je nach angebundenem Drucker und ist in Konfiguration von Druckerfreigaben in Univention Corporate Server - Handbuch für Benutzer und Administratoren [2] beschrieben.