====== Drucker auf Linux-Clients automatisch einrichten ====== 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. ==== Jeder Client sieht jeden Drucker ==== 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. ==== Jeder Client sieht nur die im Raum verfügbaren Drucker ==== 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). ==== Beschreibung des Systems ==== Auf dem **Server** liegt an einem durch die folgenden zwei Variablen((diese befinden sich in der cron-Datei)) 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. ===== Einrichtung bei openSUSE Linux ===== ==== Einrichtung auf dem openSUSE-Linux-Client ==== 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 [[http://download.opensuse.org/repositories/home:/fschuett|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''((YaST -> Sofware -> Paketquellen -> Hinzufügen... -> URL eingeben)) eingebunden werden((Mit zypper folgenden Befehl in einer ''root''-Shell eingeben:zypper ar --refresh http://download.opensuse.org/repositories/home:/fschuett/openSUSE_12.1 "Frank Schütte")). 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 stehen((manuell installierte Drucker werden durch das Skript nicht angetastet, solange deren Name sich von den Netzwerkdruckern unterscheiden.)). **Hinweis:** Das Client-Paket funktioniert erst einwandfrei, nachdem die unten beschriebene Einrichtung auf dem Server durchgeführt worden ist. ==== Einrichtung auf dem Server ==== 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 an((Erläuterungen finden Sie in einer beiligenden README bzw. in dem cron-Skript selbst.)). 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. ===== Einrichtung auf z.B. einem Ubuntu-Linux-Client ===== **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 [[https://build.opensuse.org/package/files?package=linuxmuster-printer&project=home%3Afschuett|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 ==== Einrichtung auf dem Client ==== 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 Wissens((Der Befehl zur Deaktivierung lautet ''update-rc.d linuxmuster-printer remove'')): update-rc.d linuxmuster-printer defaults Editieren Sie die Datei linuxmuster-printer und fügen Sie möglichst weit oben((am besten unterhalb von ''GLOBALDEFAULT='')) die zwei Variablen aus ''sysconfig.linuxmuster-client'' ein: ... GLOBALDEFAULT= PRINTERSHARE=pgm PRINTERACCESS=/dienst/drucker/printers ==== Einrichtung auf dem Server ==== Die Einrichtung auf dem Server ist oben im Abschnitt über den openSUSE-Linux-Client unter [[:#Einrichtung_auf_dem_Server|Einrichtung auf dem Server]] beschrieben.