Einsatzmöglichkeiten von linbo-remote im Schulalltag
By zefanja
Linbo ist eines der besten Features von linuxmuster.net – einer freien Schulserverlösung. Einen Überklick, was alles mit Linbo möglich ist, habe ich bereits in einen meiner letzten Artikel beschrieben. Dort habe ich ein Kommandozeilenprogramm erwähnt, das für die Administration der Schulrechner einfach super ist: linbo-remote. Damit kann man fast alles machen, was man sonst über die Linbo-GUI erledigen würde, z.B.
- Rechner partitionieren und formatieren, starten, herunterfahren, etc.
- neue Images in einem Raum oder in der ganzen Schule verteilen (in Kombination mit Wake-on-Lan)
- zu einer beliebigen Zeit Rechner synchronisieren und das Betriebssystem der Wahl starten lassen
- Images auf einem Rechner erstellen und auf den Server hochladen
linbo-remote
mit anderen Skripten kombinieren
Ich möchte heute beschreiben, wie wir linbo-remote
in unserer Schule einsetzen und zeigen, was man damit alles machen kann.
Neue Images verteilen mit linbo-remote
In regelmäßigen Abständen aktualisieren wir unser Ubuntu-Image, welches wir auf allen unseren Schulrechnern verwenden. Wir machen das meistens in den Ferien oder wenn es neue größere Updates gibt (e.g. Firefox, LibreOffice, wichtige Sicherheitsupdates). Mit folgendem Befehl verteilen wir das Image auf alle Rechner in einem Raum:
$ linbo-remote -r raum1 -p sync:1,halt -w 0
oder
$ linbo-remote -r raum1 -c sync:1,halt -w 60
Eine kurze Erklärung, was die einzelnen Parameter bedeuten.
-r
gibt den Raum an. Mit-g
kann man auch einen Gruppe angeben, mit-i
eine IP oder einen Hostnamen.-w
steht für Wake-on-Lan, d.h.linbo-remote
weckt die Rechner auf. Wake-on-Lan muss man im BIOS aktivieren und es funktioniert nur über ein angestecktes Netzwerkkabel (z.B. bei Notebooks). Die Zahl hinter-w
gibt die Sekunden an, die gewartet werden soll, bis Linbo die Befehle ausführt.- Der Unterschied zwischen
-p
und-c
ist, dass bei-p
Linboo eine Datei mit den Befehlen auf dem Server anlegt. Diese Datei holt sich der Rechner, sobald er nach Linbo gebootet hat, ab.-c
versucht den Befehl direkt per SSH an den Rechner zu schicken. Deshalb habe ich hier auch eine Wartezeit von 60 Sekunden angegeben, sodass genug Zeit für alle Rechner da ist, um aufgeweckt und gebootet zu werden. - nach
-c
und-p
kann man verschiedene Befehle angeben. Alle Möglichkeiten erhält man, wenn manlinbo-remote -h
eingibt. Bei fast allen Befehlen folgt nach dem Befehle ein Doppelpunkt und dahinter die Nummer des Betriebssystems. Wenn man z.B. ein Dual-Boot System mit Windows und Ubuntu hat, bekommt Windows die Nr. 1 und Ubuntu die Nr. 2. Man kann auch mehrere Befehle angeben, die man durch ein Komma voneinander trennt.sync:1,halt
bedeutet also, dasslinbo-remote
das erste Betriebssystem auf dem Rechner synchronisiert und danach den Rechner wieder herunter fährt.format:1,sync:1,sync:2,start:2
bedeutet, dass Linbo die Partition des 1. Betriebssystems formatiert und synchronisiert, danach das 2. Betriebssystem ebenfalls synchronisiert und anschließend startet. Beim Synchronisieren schaut Linbo, ob es ein neues Image auf dem Server gibt, lädt dieses gegebenenfalls herunter und kopiert es auf die entsprechende Partition.
Administration der Schulcomputer mit linbo-remote automatisieren
Wir haben oben schon gesehen, was alles mit linbo-remote
möglich ist. Verbunden mit einem Cronjob können wir beispielsweise alle Rechner in der Schule oder in einem bestimmten Raum jeden Morgen synchronisieren und starten lassen, sodass alle Rechner „frisch“ für den Einsatz im Unterricht sind.
Als root User erstellen wir einen neuen Cronjob mit
root@server$ crontab -e
und legen den folgenden Cronjob an:
30 6 * * * /usr/sbin/linbo-remote -r raum1 -w 0 -p format:1,sync:1,sync:2,start:2 > /dev/null 2>&1
Jeden Morgen, um 6:30 Uhr, an jedem Tag im Jahr, kümmert sich jetzt Linbo um unsere Rechner im Raum 1. Dabei synchronisiert er beide Betriebssysteme und startet das zweite, sodass sich die Schüler direkt anmelden können.
Wir können linbo-remote
auch verwenden, um alle Rechner herunterzufahren, die nach Linbo gebootet wurden.
0 13,15,17,20 * * * /usr/sbin/linbo-remote -r raum1 -c halt > /dev/null 2>&1
Um 13, 15, 17 und 20 Uhr werden alle Rechner im Raum 1, die Linbo gebootet haben, heruntergefahren.
Diese Cronjobs sind eine große Hilfe, um einen verlässlichen Ist-Zustand jeden Morgen an den Schulcomputern herzustellen. Der Nachteil dieser Lösung ist, dass die Cronjobs an jedem Tag ausgeführt werden, also auch am Wochenende oder in den Ferien. Doch dieses Problem lässt sich lösen 🙂
linbo-remote mit anderen Programmen kombinieren
Ein Mitglied der Linuxmuster-Community hat ein Skript geschrieben, dass überprüft, ob heute ein Schultag ist – je nach Bundesland. Das Skript findet man auf Github und wir können es wie folgt auf dem Server installieren:
$ git clone https://github.com/anschuetz/linuxmuster.git
$ cd linuxmuster/schultag
In der Datei ist-heute-schultag
müssen wir noch festlegen, welches Bundesland wir verwenden möchten. Standardmäßig ist Baden-Württemberg eingerichtet.
ferien_conf="ferien_bw.conf"
feiertage_conf="feiertage_bw.conf"
Danach installieren wir das Skript mit
$ sudo make install
Wenn ein Schultag ist, liefert das Skript einen Rückgabewert von „0“ zurück, sonst z.B. „99“ (für einen Ferientag).
Die Cronjobs oben können wir anpassen, sodass sie nur noch an einem Schultag ausgeführt werden:
30 6 * * * ist-heute-schultag && /usr/sbin/linbo-remote -r raum1 -w 0 -p format:1,sync:1,sync:2,start:2 > /dev/null 2>&1
0 13,15,17,20 * * * ist-heute-schultag && /usr/sbin/linbo-remote -r raum1 -c halt > /dev/null 2>&1
Fazit
Linbo und ins besondere linbo-remote
nimmt uns als Schul-IT-Team eine ganze Menge Arbeit ab. Während wir im ersten Jahr noch viel „Turnschuhadministration“ betrieben haben, macht das jetzt linbo-remote
für uns. Vorbei sind die Zeiten, in denen wir von Rechner zu Rechner in der Schule gelaufen sind, um sie mit einem neuen Image zu versorgen. Linbo ist für mich das beste Feature an linuxmuster.net und ich habe bisher keine andere Software kennengelernt, die uns hilft jeden Tag automatisch einen definierten Ist-Zustand herzustellen. Ist das Image einmal auf dem Rechner, funktioniert das ganze übrigens auch offline, d.h. die Schüler können selbstständig ihre Rechner zurücksetzen, falls etwas „kaputt“ ist.