Ich benutze seit Jahren openSUSE-Linux-Clients im Schulnetz (aktuell mit der paedML 5.0). Das vorgestellt Verfahren benutzt keine spezifischen Funktionen der paedML 5.0 und sollte auch auf früheren Versionen funktionieren. Die Einrichtung aller Clients ist identisch, sodass sich Installationen leicht kopieren lassen. Eine Ausnahme davon bildet die Druckerinstallation. Sie ist bei mir für jeden Raum spezifisch. Das hat mich lange geärgert und ich habe das folgende Verfahren ersonnen, um dem abzuhelfen.
Eine einfache Möglichkeit, das Problem zu beheben, ist alle Drucker für jeden verfügbar zu machen. Dabei sieht jeder alle verfügbaren Drucker, darf aber nur auf diejenigen Drucker drucken, die in der Schulkonsole für den betreffenden Raum freigegeben sind. Welche das sind, erfährt man durch Versuch und Irrtum, durch geschickte Namensgebung kann man die Anzahl der Fehlversuche sicherlich reduzieren. Diesen Weg möchte ich nicht gehen.
Wer dies jedoch so einrichten möchte, legt dazu einfach im home von linuxadmin im Ordner .cups
die Datei client.conf
mit dem Eintrag „ServerName 10.16.1.1“ an.
Ebenso kann man den Default-Drucker festlegen, in dem man „Default druckername“ in '.cups/lpoptions' ablegt. Letzteres kann man auch mit Hilfe eines Skriptes Raum-spezifisch festlegen.
Als linuxadmin:
$ mkdir /home/linuxadmin/.cups $ echo "ServerName 10.16.1.1" > /home/linuxadmin/.cups/client.conf $ echo "Default lzpr01" > /home/linuxadmin/.cups/lpoptions
Die Installation in meiner Schule ist so, dass die Netzwerkdrucker für einen Rechner automatisch beim Starten des Rechners durch ein Linux-Startskript auf dem Client installiert werden. Der Zeitbedarf dafür beträgt für 2 - 3 Drucker etwa 1 Sekunde. Die hier vorgestellte Lösung kann entweder den jeweils ersten im Raum verfügbaren Drucker als Standarddrucker einrichten oder einen Drucker (bei mir der PDF-Printer) als Standarddrucker für alle Räume einrichten).
Auf dem Server liegt an einem durch die folgenden zwei Variablen1) festgelegten Ort
PRINTERSHARE=${PROGSDIR} PRINTERACCESS=/dienst/drucker/printers
die Datei printers
, die durch den cron-Job
/etc/cron.daily/linuxmuster-printer
täglich dorthin kopiert wird und für alle Rechner im Netz lesbar die Raumzuordnungen für die Drucker enthält.
Jeder Linux-Client führt beim Start das Skript
/etc/init.d/linuxmuster-printer start
aus, das feststellt, in welchem Raum der Client steht, dann die oben genannte Datei per smb-Protokoll vom Server liest und die dem Raum zugeordneten, dem Client zugeordneten bzw. frei verfügbaren Drucker installiert sowie nach den Vorgaben den Standarddrucker festlegt.
Für die Einrichtung auf dem Linux-Client habe ich das Paket linuxmuster-printer
erstellt. Das Paket ist für verschiedene openSUSE-Linux-Versionen unter
Paketquelle Frank Schütte verfügbar, also für openSUSE Linux 12.1 muss
http://download.opensuse.org/repositories/home:/fschuett/openSUSE_12.1 als Paketquelle mit YaST
2) eingebunden werden3).
Danach können Sie das Paket über YaST
auswählen und installieren. Durch einen anschließenden Neustart wird das Paket aktiv.
Nach dem Neustart sollten die Drucker wie vorgesehen zur Verfügung stehen4).
Hinweis: Das Client-Paket funktioniert erst einwandfrei, nachdem die unten beschriebene Einrichtung auf dem Server durchgeführt worden ist.
Die Installation auf dem Client installiert die Datei
/usr/share/doc/packages/linuxmuster-printer/cron.server.linuxmuster-printer
Kopieren Sie diese Datei auf den paedML-Server und installieren Sie sie als
/etc/cron.daily/linuxmuster-printer
mit den Rechten 755
und Besitzer root.root
.
Passen Sie die Variablen GLOBALDEFAULT
, PRINTERSHARE
und PRINTERACCESS
nach ihren Wünschen an5).
Führen Sie die Datei anschließend einmal aus, um die herunterladbare Datei für die Clients zu erstellen. Kontrollieren Sie, dass die Datei
${PRINTERSHARE}${PRINTERACCESS}
auf dem Server entstanden ist.
Hinweis: Ich selbst habe kein Ubuntu-Linux-System zur Verfügung, um die folgenden Informationen zu testen. Es wäre schön, wenn jemand mit einem solchen System die Angaben testen und den Artikel entsprechend aktualisieren würde.
Sie finden die benötigten Skripte und die README in einem Quellenarchiv namens linuxmuster-printer-0.3.tar.gz
in meiner Paketquelle. Laden Sie die Datei herunter und entpacken Sie sie als root auf dem Client:
tar -xvzf linuxmuster-printer-0.3.tar.gz
Es entsteht das Verzeichnis linuxmuster-printer
mit den Dateien
linuxmuster-printer README cron.server.linuxmuster-printer sysconfig.linuxmuster-printer
Das Skript linuxmuster-printer
muss in den Ordner /etc/init.d
kopiert und mit den üblichen Rechten root.root
755
versehen werden. Der Befehl zur Aktivierung lautet unter Ubuntu meines Wissens6):
update-rc.d linuxmuster-printer defaults
Editieren Sie die Datei linuxmuster-printer und fügen Sie möglichst weit oben7) die zwei Variablen aus sysconfig.linuxmuster-client
ein:
... GLOBALDEFAULT= PRINTERSHARE=pgm PRINTERACCESS=/dienst/drucker/printers
Die Einrichtung auf dem Server ist oben im Abschnitt über den openSUSE-Linux-Client unter Einrichtung auf dem Server beschrieben.
root
-Shell eingeben:zypper ar --refresh http://download.opensuse.org/repositories/home:/fschuett/openSUSE_12.1 "Frank Schütte"
update-rc.d linuxmuster-printer remove
GLOBALDEFAULT=