Automatische Softwareverteilung

Ich blicke zwar auf mehr als zehn Jahren Erfahrung in der automatischen Verteilung von Software zurück, aber meine eigentliche Vorliebe ist das Programmieren. Dies will ich jetzt zu meinem Tätigkeitsschwerpunkt machen. Das Thema Sofwareverteilung führe ich hier nur als historischen Background auf.

Meine Tätigkeit war für ein weltweit operierendes Unternehmen, allerdings "nur" für die deutsche Niederlassung davon. In den Phasen der Migration auf neue Systeme (Betriebssystem oder Verteilungssoftware) habe ich mit den zusätzlich eingekauften Dienstleistern zusammengearbeitet. Aufgrund der Menge an umzustellenden Computern und Anwendungen reichte die Kapazität einer Einzelperson hier natürlich nicht aus. In den langen Phasen dazwischen war ich als Einzelkämpfer unterwegs. Sämtliche neuen und Anpassungen der bestehenden Pakete gingen über meinen Tisch und die meisten wurden auch von mir umgesetzt.

Es begann mit Windows 95 und einer proprietären firmeninternen Anwendung für die Ausführung der Verteilungsscripte. Mit der Umstellung auf Windows 2000 wurde Verteilungssoftware geändert. Statt der hauseigenen Lösung kam jetzt der Netware Application Launcher (NAL) von Novell zum Einsatz und es wurden alle Installationspakete auf msi-Scripte umgestellt. Dazu wurden alle nicht msi-Installation repaketiert und die msi-Installationen an die Kundenwünsche angepaßt.

Es folgten die Umstellung des Betriebssystems auf Windows XP mit nochmaliger Anpassung aller Installationspakete an das neue Betriebssystem. Dann wurde aufgrund von Konzernvorgaben das Softwareverteilungstool gewechselt. Nun war die Wahl auf Altiris gefallen. Wieder mußten alle Installationspakete angepaßt werden (denn im Gegensatz zum NAL benötigt Altiris zum Beispiel wieder die Original-Shortcuts zu den einzelnen Programmen, die beim NAL jeweils herausoperiert werden mußten).

Natürlich gab es jeweils Sonderfälle, die sich nicht, jedenfalls nicht mit vernünftigem Aufwand, als msi-Pakete repaketieren ließen. Keine Regel ohne Ausnahmen. ;-) Traditionell fallen Treiber oder andere hardwarenahe Software darunter. Aber auch die wurden natürlich in die Softwareverteilungssoftware integriert indem die Original-Installationspakete angepaßt wurden so daß sie den Anforderungen des Unternehmens genügten..

Auch die Umstellung auf Windows 7 habe ich dort mitgemacht. Mein Hauptaufgabengebiet, die Softwareverteilung und das Paketieren, wurden dort inzwischen globalisiert. Lokale Dienste wurden nach Indien ausgelagert. Meine Aufgabe war bei dieser Umstellung dann das Vorbereiten der bestehenden Installationspakete für die externen Paketierer und die Qualitätskontrolle der gelieferten Pakete.

Repacketieren / Scripten

Dies ist das Erstellen von msi-Paketen, die eine Installation der Original-Installationsroutine des Produkts nachbilden. In der Windows-Welt haben msi-Pakete den Vorteil, daß die Pakete standardisiert sind. Installation, Reparatur und Deinstallation laufen über Windows Dienste und sind ins Betriebssystem integriert. Diverse Mechanismen zur Konflikterkennung bei gleichnamigen Dateien, Versionskontrollen, Referenzzählungen von Komponenten, alles dies ist im MS-Installer integriert und verbessert die Qualität der Installationen. Des weiteren unterstützen viele Software-Verteilungssysteme die speziellen Optionen von msi und lassen daher eine recht feine Anpassung der Installation an die Kundenwünsche zu.

Anpassen von Installationsscripten

Im allgemeinen Fall muß jedes Installatiospaket an die Kundensituation angepaßt werden. Bei repaketierten Installationspaketen können diese Kundenwünsche direkt ins Paket integriert werden. Die msi-Technologie berücksichtigt auch das und läßt die nachträgliche Anpassung von Installationspaketen z.B. durch sog. Transforms zu. Damit kann jede msi-Installationsroutine in sehr weiten Grenzen an die Kundenwünsche angepaßt werden.

Softwareverteilung

Ich habe lange Zeut mit dem Netware Applicaton Launcher des Zenworks-Paketes von Novell gearbeitet. Ich betreute die Paketvewaltung im NAL und erstellte dazu auch die meisten der repaketierten msi-Installationen. Über die Zeit gehörten dazu dann auch Aufgaben die bei einem ersten Rollout von Software gerne übersehen werden, nämlich Aktualisieren von Paketen (hier z.B das Entfernen der Vorgängerversionen), Reparatur von bestehenden Installationen (im täglichen Betrieb geht immer mal wieder eine Installation kaputt). Aufgrund der Vielzahl der Pakete ist das Einhalten der msi-Scripting Richtlinien von entscheidender Bedeutung für die Stabilität des Systems.

Der Netware Application Launcher wurde dann durch eine globale unternehmensinterne Entscheidung durch ein anderes Produkt, nämlich Altiris, abgelöst. Der sich daraus ergebende Paradigmenwechsel der User bezogenen Software Verteilung auf eine Workstation basierende bedurfte einiger Gewöhnung - zugegeben. Auch vermißte man den Komfort, aber mit ein paar Scripten konnte vieles davon auch unter Altiris wieder implementiert werden. (Um Altris nicht übermäßig schlecht zu machen: Es gibt dort bestimmt aktuellere Versionen und Zusatzprodukte. Allerdings standen die uns nicht zur Verfügung, da wir mit einer eingeschränkten und globalen Version arbeiten mußten.)

Die Migration von ca. 200 Altanwendungen in diversen Installationstechnologien mit diversen Querabhängigkeiten der Pakete untereinander habe ich 2009 erfolgreich durchführen und auch abschließen können.

Verwendete Werkzeuge

  • Wise Package Studio Professional
    Ein meiner Meinung nach rundum gelungenes Paket für das Erstellen und bearbeiten von msi-Paketen.
  • Orca
    Zwar ein recht unkompfortables Werkzeug, aber für einige Problemfälle unverzichtbar. Die Validierung von msi-Scripten ist mit diesem Tool recht ausführlich und einfach zu machen.
  • Installshield
    Nicht mein persönlicher Favorit, denn dieses Produkt verwendet sehr viel eigene Komponenten, die in die msi-Pakete eingebettet werden. Die Wizards sind wohl Gewöhnungssache.

Natürlich reicht das nicht, sondern für die Fehleranalyse und für Hilfsprogramme wurden Tools quer durch die Bank verwendet: Insbesondere sind natürlich die Tools von SysInternals sind eine große Hilfe. Dazu kommen selbstgeschriebene Programme in vbs, C#, DOS-Batch, WiseScript oder was immer notwendig ist.