IServ Schulserver

Softwareverteilung

Allgemein

Das Softwareverteilungsmodul dient dazu, vollautomatisch die Arbeitsplatzrechner im Schulnetz mit dem Windows-Betriebssystem samt Treibern und Anwendungsprogrammen zu installieren. Im laufenden Betrieb werden bei jedem Rechnerstart vorhandene Updates eingespielt. Auf den Arbeitsplatzrechnern wird dazu die freie Software opsi der Firma uib eingesetzt, die Steuerung erfolgt über die gewohnte IServ-Weboberfläche. Außerdem ist eine Lizenzverwaltung sowie eine Inventarisierung der Hardware integriert.

Für jedes Betriebssystem oder Programm wird ein Installationspaket benötigt, das die Dateien, Einstellungen und Installationsanweisungen enthält. Wir liefern eine Sammlung von gängigen freien sowie kostenpflichtigen Anwendungs- und Lernprogrammen mit. Außerdem stellen wir falls nötig für diese Pakete Updates zur Verfügung, die jede Nacht über das automatische IServ-Update eingespielt werden. Weitere Pakete können auf Anfrage erstellt oder von interessierten Schulen selbst entwickelt werden.

Weiterhin liefern wir eine sehr umfangreiche Sammlung von Treibern für verschiedenste Hardware mit. Bei sehr neuer Hardware kann es jedoch vorkommen, dass ein passender Treiber noch fehlt. Wir bemühen uns, diese auf Anfrage mit zu integrieren. Eigene Treiber können bisher nicht integriert werden.

Aus rechtlichen Gründen können wir Ihnen den Zugriff auf die kostenpflichtigen Programmpakete erst freischalten, wenn wir folgende Berechtigungs- und Freistellungsvereinbarung vom Schulleiter oder Schulträger unterzeichnet im Original vorliegen haben. Eine elektronische Übermittlung per Fax oder E-Mail ist leider nicht wirksam (BGB §780, §781).

Server

Installation

Zum Zugriff auf das Softwareverteilungsmodul benötigen Sie einen IServ-Benutzer mit Administratorpasswort und dem Sonderrecht Softwareverteilung steuern. Standardmäßig haben dies die Mitglieder der Gruppe: Admins.

Zur Installation wählen Sie in der Weboberfläche unter Verwaltung → Pakete den Eintrag Softwareverteilung aus und klicken auf Installieren.

Sobald das Paket installiert ist, erscheint in der Paketverwaltung oben ein neues Auswahlfeld Filter. Zur Anzeige der verfügbaren Installationspakete stellen Sie dieses auf Softwareverteilung. Wenn Sie ein Paket anklicken, bekommen Sie in einem separaten Fenster weitere Informationen über seinen Inhalt. Wählen Sie nun mindestens ein Betriebssystem sowie die gewünschten Anwendungsprogramme aus und klicken unten auf Installieren. Je nach Auswahl müssen nun mehrere Gigabyte an Daten von unseren Servern heruntergeladen werden. Abhängig von Ihrer Internetverbindung kann dieser Vorgang mehrere Stunden dauern. Auch wenn Sie die Seite verlassen, läuft das Herunterladen im Hintergrund automatisch weiter. Sie können währenddessen den Server sowie das Softwareverteilungsmodul normal weiter nutzen.

Konfiguration

Mit Installation des Softwareverteilungsmoduls wird unter Verwaltung → Rechner oben ein neuer Menüpunkt Software angezeigt. Dieser gibt eine Liste aller auf dem Server vorgehaltenen Installationspakete für Betriebssysteme und Anwendungsprogramme aus. Wenn Sie ein Paket anklicken, bekommen Sie nähere Informationen dazu. Dabei gibt das Feld Version die Versionsnummer des Programms und Revision die Versionsnummer des Installationspakets wieder. Einige Programme benötigen zusätzliche Bibliotheken wie Java oder das .Net-Framework. Diese Pakete sind unter Benötigt aufgeführt und werden vom Softwareverteilungsmodul ggf. automatisch mit installiert. Die Spalte Installiert zeigt an, auf wie vielen Rechnern das Programm zur Zeit installiert ist.

Pakete, die in der Liste fett gedruckt sind, enthalten zusätzliche Eigenschaften für Seriennummern oder Konfigurationsoptionen. So muss zum Beispiel beim Paket Windows XP Professional vor der Installation ein gültiger Lizenzschlüssel und ein Administrator-Passwort eingegeben werden. Die eingegebenen Werte werden zur Zeit noch nicht auf Gültigkeit überprüft. Bei fehlerhaften Werten bricht die Installation u. U. ab oder wartet auf eine Benutzereingabe.

Steuerung

Zur Steuerung der Softwareverteilung gehen Sie in der Verwaltung auf den Punkt Rechner und wählt oben unter Filter einen der Räume aus oder geben Sie im Suchfeld einen Teil des Namens, der IP- oder der MAC-Adresse an. Um einen einzelnen Rechner zu bearbeiten klicken Sie ihn in der jetzt angezeigten Liste an. Alternativ können Sie mehrere Rechner gleichzeitig bearbeiten, indem Sie diese zuerst auswählen und anschließend unten auf die Schaltfläche Bearbeiten klicken. Es öffnet sich ein neues Fenster mit verschiedenen Reitern.

  • Eigenschaften

    Dieser Reiter ist immer vorhanden, auch ohne die Softwareverteilung. Hier können allgemeine Einstellungen wie Name, IP-Adresse, Raum und Internetzugriff vorgenommen werden. Bei Auswahl mehrerer Rechner gleichzeitig sind nicht alle Einstellungen verfügbar.

  • Betriebssystem / Programme

    Diese beiden Reiter dienen zur Anzeige und Steuerung des installierten Betriebssystems bzw. der installierten Programme. Die Bedienung ist in beiden Füllen Ähnlich.

    Die Liste zeigt die installierten Pakete und ihre jeweilige Version sowie die geplanten Aktionen an. In der Spalte Status wird angezeigt, ob das Paket vollständig installiert ist, gerade installiert wird oder die Installation fehlgeschlagen ist. Das Softwareverteilungsmodul erfasst dabei nur Installationen, die es selbst durchgeführt hat. Software, die bereits installiert war oder manuell installiert wurde, wird nicht angezeigt, stört aber auch nicht. Zu Beginn wird daher eine leere Liste angezeigt.

    Klickt man ein Paket an, so Öffnet sich ein neues Fenster, in dem man die globale Konfiguration des Paketes Überschreiben kann. So lassen sich einzelnen Rechner beispielsweise unterschiedliche Seriennummern zuweisen. Wird ein Feld leer gelassen, kommt weiterhin die globale Vorgabe zur Anwendung.

    Über die Schaltfläche Hinzufügen oben in der Liste kann neue Software zur Installation vorgemerkt werden. Bereits installierte Programme können über die Schaltfläche Deinstallieren zur Deinstallation vorgemerkt werden. Betriebssysteme können nicht deinstalliert werden.

    Um die Benutzer an den Arbeitsplatzrechnern nicht zu stören, wird eine geplante Aktion erst beim nächsten Rechnerstart vor der Anmeldung tatsächlich Übernommen. Falls nötig kann dies auch über die Schaltfläche übernehmen sofort geschehen. Solange eine Aktion noch nicht durchgeführt wurde, kann sie über die Schaltfläche Zurücksetzen wieder aufgehoben werden.

    Mit der Schaltfläche Ignorieren kann eine Software-Installation aus der Liste gelöscht werden, ohne das Programm auf dem Rechner tatsächlich zu deinstallieren. Dadurch werden in Zukunft keine automatischen Updates durch das Softwareverteilungsmodul mehr eingespielt. Auch wird das Programm bei einer eventuellen Neuinstallation des Rechner nicht wieder automatisch mit installiert.

  • Treiber

    Hier werden sämtliche Hardware-Komponenten der ausgewählten Rechnern aufgeführt, die während der Betriebssysteminstallation erkannt wurden. Ist kein passender Treiber vorhanden, wird die entsprechende Komponente fett hervorgehoben. Lassen Sie uns bitte in dem Fall die ID der entsprechenden Komponente sowie falls verfügbar den Treiber zukommen, damit wir ihn in das Softwareverteilungsmodul integrieren können.

  • Hardware

    Wurde nur ein einzelner Rechner ausgewählt, ist der Reiter Hardware zu sehen. Hier können detaillierte Informationen über die verbaute Hardware wie Hauptplatine, Prozessor, BIOS, Speicher, Steckkarten, Laufwerke und Anschlüsse eingesehen werden. Die Informationen werden bisher nur während der Betriebssysteminstallation erfasst. Ältere Stände sind gespeichert, werden aber noch nicht angezeigt.

Log

Alle Aktionen der Softwareverteilung werden protokolliert und können unter Verwaltung → Log nachgeschlagen werden. Durch einen Benutzer ausgeführte Aktionen haben ein gesetztes Namensfeld. Durch den Rechner ausgeführte Aktionen, z. B. durch den Preloginloader, haben ein leeres Namensfeld.

Datum Name IP Modul Text
2010-11-05 16:32:38   10.0.1.5 Softwareverteilung Produkt "PuTTY" auf Rechner "Test": Aktion zurückgesetzt
2010-11-05 16:32:38   10.0.1.5 Softwareverteilung Produkt "PuTTY" 0.60-1 auf Rechner "Test": Installation erfolgreich
2010-11-05 16:32:23   10.0.1.5 Softwareverteilung Produkt "PuTTY" 0.60-1 auf Rechner "Test": Installation gestartet
2010-11-05 16:31:40 abc 10.0.0.30 Softwareverteilung Produkt "PuTTY" auf Rechner "Test": Installation vorgemerkt

Im Beispiel hat der Benutzer abc dem Rechner Test das Programm PuTTY zugewiesen. Das Programm wurde anschließend von dem Rechner erfolgreich installiert. Man beachte, dass die Älteste Aktion unten steht.

Client

Bootvorgang

Damit das Softwareverteilungsmodul auf einem Rechner das Betriebssystem installieren kann, muss der Rechner per PXE aus dem Netzwerk starten. Dazu aktiviert man im BIOS das Boot-ROM der Onboard-Netzwerkkarte und setzt Netzwerk an die erste Stelle der Boot-Reihenfolge. Bei einem Rechner mit Netzwerk-Steckkarte benötigt man normalerweise einen zusätzlichen Boot-ROM-Chip. Die Optionen im BIOS heißen je nach Modell unterschiedlich, z. B.:

  • Award Software 2008
    Integrated Peripherals: Onboard LAN1 Boot ROM = Enabled
    Advanced BIOS Features: First Boot Device = Realtek Boot Ag
    
  • American Megatrends Inc. 2004
    Integrated Peripherals: Onboard LAN Option ROM = Enabled
    Advanced BIOS Features / Boot Sequence: 1st Boot Device = Network
    
  • American Megatrends Inc. 2002
    Advanced / Onboard Devices Configuration: LAN Option ROM = Enabled
    Boot / Boot Device Priority: 1st Boot Device = Yukon PXE
    
  • PhoenixBIOS 2004
    Advanced / Peripheral Configuration: LAN Remote Boot = Enabled
    Main / Boot Options / Boot Sequence: 1. BootManage UNDI, PXE-2.0
    
  • Dell OptiPlex 380
    System Configuration / Integrated NIC: Enable with PXE
    General / Boot Sequence: 1. Onboard Network Controller
    
  • Dell OptiPlex 740
    Onboard Devices / Integrated NIC: On w/PXE
    General / Boot Sequence: 1. Integrated NIC
    

Alternativ kann man per CD-ROM oder USB-Stick einen PXE-Boot-Vorgang durchführen. Eine Anleitung zum Erstellen eines solchen Datenträgers findet sich hier: http://etherboot.org/wiki/removable

Wenn der PXE-Boot-Vorgang korrekt eingerichtet worden ist, fragt das BIOS bei jedem Rechnerstart beim Server an. Die Identifikation des Rechners erfolgt dabei ausschließlich über die MAC-Adresse der Netzwerkkarte. Wurde auf dem Server keine Aktion vorgemerkt und im opsi-Bootmenü keine Auswahl getroffen startet der Rechner nach drei Sekunden automatisch wie gewohnt von der lokalen Festplatte.

Betriebssysteminstallation

Wurde eine Neuinstallation des Betriebssystems in der Weboberfläche angewiesen, startet automatisch das opsi-Bootimage. Alternativ können Sie im opsi-Bootmenü auch manuell den Eintrag Start opsi bootimage auswählen, müssen dann jedoch noch folgende Fragen beantworten:

  • Ist der Rechner mit seiner MAC-Adresse noch nicht in der Rechnerverwaltung eingetragen, werden Sie zunächst aufgefordert, seine Netzwerkeinstellungen zu vervollständigen. Tragen Sie den gewünschten Hostnamen (ohne Domain) ein und vergeben Sie eine sinnvolle freie IP-Adresse. Andere Einstellungen sollten nicht verändert werden, insbesondere sollte die Domain auf local bleiben.
  • Anschließend wählen Sie aus, dass das Bootimage den Host-Schlüssel vom Service holen soll. Diese Abfrage wird in kommenden Updates entfallen.
  • Melden Sie sich nun mit Ihrem IServ-Benutzer an. Die IP-Adresse des Servers ist automatisch voreingestellt.
  • Wählen Sie das gewünschte Betriebssystem aus.

Das Bootimage formatiert nun die Festplatte des Rechners, kopiert die Installationsdateien samt Treibern und startet die Windows-Installation. Alle Daten auf der Festplatte gehen dabei verloren. Wenn alles funktioniert hat, bleibt der Rechner nach einer halben bis einer Stunde mit dem Windows-Anmeldedialog stehen. Waren dem Rechner im Softwareverteilungsmodul bereits Programme zugeordnet, so werden diese automatisch wieder installiert.

Programminstallation

Ein Rechner kann nur vom Softwareverteilungsmodul gesteuert werden, wenn er Mitglied in der Windows-Domäne des IServs ist. Außerdem muss die Datei- und Druckerfreigabe installiert sein und darf nicht durch die Firewall blockiert werden. Über das Softwareverteilungsmodul werden neu installierte Rechner automatisch korrekt eingerichtet. Bestehende Rechner müssen ggf. manuell angepasst werden.

Zur automatischen Installation und Aktualisierung der Programme muss in Windows das Programm opsi.org Preloginloader installiert sein. Es wird bei jedem Start aufgerufen und führt die auf dem Server vorgemerkten Aktionen durch. Der Benutzer sieht Logo und Namen des gerade bearbeiteten Programms und kann den Fortschritt der Installation verfolgen. Falls nötig wird der Rechner neu gestartet. Falls der Server nicht erreichbar sein sollte, bricht der Preloginloader nach einer kurzen Wartezeit ab. Der Benutzer kann sich erst anmelden, wenn alle Aktionen abgearbeitet wurden.

Die Rechner werden dabei durch eine geheime Nummer identifiziert, die auf der Festplatte gespeichert ist und nur vom Administrator ausgelesen werden kann (opsi_host_key in C:\Programme\opsi.org\preloginloader\opsiclientd\opsiclientd.conf). Name und IP-Adresse des Rechners werden vom Softwareverteilungsmodul nicht verwendet und können nach Belieben verändert werden.

Wird das Betriebssystem mit dem Softwareverteilungsmodul installiert, wird der Preloginloader automatisch mit eingerichtet. Bei bereits installierten Rechnern wird der Preloginloader installiert, sobald man einem Rechner über die Rechnerverwaltung Programme zuweist und dann auf Übernehmen klickt.

Soll ein Rechner nicht mehr vom Softwareverteilungsmodul gesteuert werden, kann der Preloginloader deinstalliert werden.

Paketerstellung

Zur Erstellung eigener Installationspakete benötigen Sie einen root-Zugang zu Ihrem Server sowie grundlegende Programmierkenntnisse. Das Format ist das gleiche wie beim opsi-Server von uib. Wir würden uns freuen, wenn Sie uns selbst erstellte Pakete zukommen lassen, damit wir sie in unsere Sammlung aufnehmen und anderen Schulen zugänglich machen können.

Es gibt leider keinen einheitlichen Weg, wie Programme unter Windows automatisiert installiert werden können. Insbesondere ist die Eingabe von Lizenzschlüsseln fast immer problematisch. Eine sehr hilfreiche Übersicht über die verschiedenen Arten von Installationspaketen erhalten Sie beim unattended-Projekt. Viele Beispiele für Installer gibt es bei wpkg.org und appdeploy.com. Ansonsten empfiehlt sich ein Blick in das Handbuch vom Hersteller oder eine Google-Suche mit dem Stichwort unattended und dem Produktnamen. Um einen Installer zu identifizieren, durchsuchen Sie ihn mit dem folgenden Befehl nach Merkmalen der gängisten Installertypen:

strings setup.exe | grep -E '(Inno Setup|NSIS|InstallShield|AdvancedInstaller)'

Jedes Paket wird intern durch einen eindeutigen Bezeichner angesprochen. Diese ID wird aus dem Produktnamen abgeleitet. Falls vorhanden wird der Herstellername vorangestellt. Leerzeichen werden durch Minus ersetzt. Außer englischen Kleinbuchstaben und Ziffern ist nur noch das Zeichen Punkt erlaubt. Die Versionsnummer ist normalerweise nicht Bestandteil der ID. Ausnahme sind Pakete, bei denen verschiedenen Versionen getrennt verwaltet werden sollen, z. B. kostenpflichtige Software wie Microsoft Office. Die ID darf später nicht mehr verändert werden, weil dann bestehende Installationen nicht mehr zugeordnet werden können.

Jedes Paket wird unter /srv/deploy/install in einem eigenen Verzeichnis mit seiner ID gespeichert. Dieses Verzeichnis enthält das Installationsprogramm sowie folgende Dateien:

  • control

    Diese Datei enthält alle Metadaten des Pakets wie Name, Version und ggf. Abhängigkeiten. Sie muss als Plaintext-Datei mit UTF-8-Kodierung und Unix-Zeilenumbrüchen gespeichert sein. Nach Änderungen an einer control-Datei muss das Programm chkdeploy ausgeführt werden. Beispiel:

    [Product]
    type: localboot
    id: paint.net
    name: Paint.Net
    description: Freie Bildbearbeitungssoftware
    advice: Hinweistext
    version: 3.5.5
    packageVersion: 1
    priority: 0
    setupScript: install.ins
    uninstallScript: remove.ins
    
    [ProductDependency]
    action: setup
    requiredProduct: microsoft-dot-net-framework
    requiredStatus: installed
    requirementType: before
    
  • install.ins / remove.ins

    Diese beiden Dateien enthalten die Anweisungen zur Installation bzw. Deinstallation des Paketes. Sie werden von dem Programm opsi-winst mit Systemrechten auf den Clients ausgeführt. Eine ausführliche Dokumentation der möglichen Befehle finden Sie im opsi-winst Referenz Handbuch. Außerdem hilfreich ist die opsi-winst reference card.

    Die Installationsscripte sollten immer zu Beginn eine Statusmeldung mit dem Programmnamen sowie das Logo anzeigen. Am Ende sollte geprüft werden, ob die Installation erfolgreich war und andernfalls ein Fehlercode zurückgegeben werden. Beispiel:

    [Initial]
    Message=Installiere Paint.Net...
    
    [Aktionen]
    ShowBitmap "%ScriptPath%\logo.png" "Paint.Net"
    WinBatchSetup
    
    if not(FileExists("%ProgramFilesDir%\Paint.NET\PaintDotnet.exe"))
      LogError "Fatal: Executable not found!"
      IsFatalError
    endif
    
    [WinBatchSetup]
    ; Um MSI-Dateien zu erstellen, PaintDotnet_X_X.exe /createMsi, lokal ausführen
    ; am Besten auf einem Standalone Rechner, da die Funktion auf den Desktop 
    ; zugreift
    msiexec /i "%ScriptPath%\PaintDotNetMsi\PaintDotNet.x86.msi" /passive
    
  • logo.png (optional)

    Für jedes Paket kann ein Logo hinterlegt werden, das in der Weboberfläche und während der Installation angezeigt wird. Es muss im png-Format gespeichert sein, darf maximal 160x160 Pixel groß sein und sollte einen transparenten Hintergrund besitzen.

Einige Lernprogramme müssen nicht vollständig auf die einzelnen Rechner installiert werden, sondern laden zur Laufzeit Daten vom Server nach oder speichern Lernstände zurück. Diese Dateien können auf dem Server in /srv/appdata in einem Unterverzeichnis mit der Paket-ID hinterlegt werden. Die Clients können über die Freigabe \\iserv\appdata darauf zugreifen. Die Zugriffsrechte können über die Linux-Dateirechte nach Bedarf vergeben werden.

Während des Systemstarts und der Installationsvorgänge werden ausführliche Log-Dateien zur Fehlersuche erzeugt. Diese können auf den Clients unter C:\tmp und auf dem Server unter /var/log/php/deploy nachgelesen werden. Zur besseren Übersicht können die bestehenden Log-Dateien jederzeit gelöscht werden.