Softwareverteilung sind die Prozesse zur Verteilung von Software auf Anwender-PCs.
Übersicht
Bevor eine Software durch einen Anwender verwendet werden kann, muss sie auf einem Computersystem installiert sein und konfiguriert werden (dies gilt auch für das Betriebssystem des Computers). Bei Personal Computern (PC) muss die Software auf dem Computer des Anwenders installiert werden. Aber auch bei Anwendungen die auf Server Computern betrieben werden (z.B. Web Anwendung) ist je nach Anzahl der Server eine Softwareverteilung notwendig.
Viele Anwender verfügen nicht über die notwendigen Kenntnisse oder Berechtigungen, um Software-Applikationen selbst zu installieren. Daher ist es in (großen) Organisationen üblich, dass diese Aufgabe durch qualifizierte Mitarbeiter für die Anwender durchgeführt wird. Bei einer großen Anzahl von PCs und/oder Anwendungen ist der Aufwand hierfür sehr groß, so dass es notwendig wird, diese Tätigkeit zu automatisieren.
Die Softwareverteilung ist ein kritischer Prozess, da mit ihr auch die Installation sicherheitsrelevanter Applikationen (Virenscanner, Browser, Betriebssystemkorrekturen (Hotfixe)) erfolgt.
Zielsetzung der Softwareverteilung
Gesamtziel des Einsatz einer Softwareverteilung ist es, eine vollautomatische Erstintstallation, Konfiguration und Wartung einer großen Anzahl von Computer mit minimalem Aufwand zu realisieren. Weiterhin muss ein störungsarmer und sicherer Betrieb der betreuten Umgebung erreicht werden.
Dieses Ziel kann mit heute verfügbaren Systemen zur Softwareverteilung durchaus erfüllt werden. Es werden Umgebungen mit mehr als 10.000 Computern durch den Einsatz eines einzigen Administrators und weniger Server betrieben.
Rollen der Softwareverteilung
- Administrator: betreibt, pflegt und konfiguriert das System
- Anwender: erhält durch die Softwareverteilung benötigte Anwendungen automatische installiert und konfiguriert
- Softwarehersteller: liefert die Applikationen und das Setup Programm
- Paketierer: verpackt das Setup Programm der Applikation in ein Paket des Softwareverteilsystems
- Produktverantwortlicher: legt für eine Applikation die Konfiguration und die Art der Installation fest
- Support: unterstützt bei Störungen oder Problemen den Anwender. Erhält vom Administrator Informationen über die Konfiguration des Systems. Leitet Störungen nach Qualifikation zur Lösung an den Administrator weiter.
- Netzwerkbetreiber: betreibt das Netzwerk, auf dem die Softwareverteilung stattfindet. Ist bei kleinen Organisationen oftmals identisch mit dem Administrator. Bei großen Organisationen wird das Netzwerk fast immer unabhängig betrieben.
- Serverbetreiber: betreibt die notwendigen Server. Ist bei kleinen Organisationen oftmals identisch mit dem Administrator. Bei großen Organisationen werden Server meist unabhängig betrieben.
Komponenten der Softwareverteilung
- Netzwerk: dient zur Übertragung der Pakete und der Konfigurationsdaten. Wird auch verwendet, um die IST-Situation (Inventarisierung) an Server zurückzusenden
- Protokolle und Standards: standardisierte Verfahren mit denen Computer Daten austauschen können. Für die Softwareverteilung sind am wichtigsten BOOTP, PXE, IP, DHCP, HTTP, FTP, UNC, Multicast, LDAP,....
- Computer: erhält durch die Softwarverteilung das OS und die Anwendungen installiert. Wird durch die Softwarverteilung konfiguriert
- Paket: Sammlung von Dateien welche eine Appliakation automatitisiert installiert und konfiguriert. Dabei kann ein Paket auch mehrere Applikationen (z.B. alle notwendigen Hardware Treiber) enthalten. In der Regel werden alle notwendigen Dateien in ein komprimiertes Archiv zusammengepackt.
- Paketierungs Software: spezielles Progamme die dazu verwendet wird um ein Paket zu erstellen. Wird vom Paketierer verwendet.
- Konfigurations-Datenbank: speichert zentral alle Konfigurationsdaten des Systems ab.
- Konfigurations-Server: Ablageort der Konfigurationsdatenbank. Stellt Dienste zur Verfügung mit denen die Konfigurationsdaten den Computern zugänglich gemacht werden.
- Konfigurations-Software: spezielle Software zur Pflege der Konfigurationsdaten. Wegen der großen Datenmengen sind hier leistungsfähige Systeme notwendig.
- Paket Server: stellt die Paket über das Netzwerk zur Verfügung. Braucht eine sehr leistungsfähige Netzwerkanwendung Der Paketserver und der Konfigurationsserver sind u.U. der gleiche physiche Computer.
- Inventarisierung: System um die Daten der IST Umgebung zu erfassen. Ist sinnvollerweise in die Softwareverteilung integriert. Kann aber auch einzeln betrieben werden. Kann u.U. auch komplett entfallen (Kostenreduktion).
Installationsphasen
Installation des Betriebssystems
Bevor Anwendungen installiert werden können, muss zunächst das Betriebssystem (kurz OS von engl. operation system) installiert werden. Dazu kann entweder eine CD/DVD verwendet werden oder ein Protokoll zum Netzwerkboot von Computern (BOOTP, PXE). Im ersten Fall bootet der Computer von der CD/DVD auf der alle notwendigen Dateien gespeichert sind. Das Programm zur Installation des OS (auch auf dem Datenträger) wird automatisch gestartet. Dieses kann oft so vorkonfiguriert werden, dass keine Eingaben durch den Anwender mehr notwendig sind.
Bei der Netzwerkinstallation lädt das BIOS des Computer zunächst vom Netzwerk die notwendigen Programme (meist über das TFTP Protokoll) und führt diese dann aus. In der Regel lädt dieses Programm dann das OS Installationsprogramm von einem Server Computer im Netzwerk.
Installation von Anwendungen
Nachdem das OS vollständig installiert ist, können die Applikationen (Textverarbeitung, Tabellenkalkulation, Zeichenprogramm...) installiert werden.
Dazu werden diese meist in so genannte Pakete verpackt. Das heißt, die Dateien der Anwendung werden in einem (großen) Archiv zusammengestellt (oftmals komprimiert), dass zusätzlich die notwendigen Programme zur Installation der Applikation enthält. Für Microsoft Windows kann dabei die MSI Technologie verwendet werden, bei der das Setupprogramm bereits im OS integriert ist. Unter LINUX ist das RPM-Format weit verbreitet. Das Paket erhält nur noch die notwendigen Dateien der Anwendung und eine Steuerungsdatei, die dem OS mitteilt, welche Aktionen zur Installation durchzuführen sind.
Unter Windows kann Installation von Anwendungen auf technisch verschiedene Weise erfolgen. Dabei hat jedes Verfahren Vor- und Nachteile, die der Admin im Einzelfall gegeneinander abwägen muss. Dabei spielt es auch eine Rolle, welche Installationsverfahren überhaupt von dem Deployment-System unterstützt werden. Und auch hier ist die Qualität keinesfalls immer die gleiche. Im Detail werden vier Gruppen unterschieden:
1. Microsoft Installer Paket (MSI)
"des Admins Liebling". Eine Installation die vom Hersteller der Software bereits als MSI-Paket ausgeliefert wird, macht dem Admin die wenigste Arbeit und kann auch am einfachsten wieder deinstalliert werden. Eine Homogenität unter den Clients ist nicht erforderlich. Über Transformation Files (MST) kann die Installaton komfortabel an die eigenen Berdürfnisse angepasst werden. Die MSI Installation ist sehr robust, da sie ein Transaktionssteuerung implementiert. D.h. alle Änderungen am System werden erst dann wirksam wenn ALLE Schritte des Setup erfolgreich waren (COMMIT). Schlägt ein Schritt fehl, wird das System wieder in den Originalzustand vor Beginn der Intstallation versetzt (ROLLBACK). MSI sollte auf jeden Fall die bevorzuget Methode sein. Im allgemeinen kann Software die mit MSI Technologie installiert wurde auch wieder deinstalliert werden. Die MSI Technologie ist die aktuelle Standard Technologie die Microsoft selbst empfiehlt. MSI Paket können theoretisch direkt unter Verwendung des Active Directory an einzelen Rechner, OU's oder eine Domäne verteilt werden. Je nach Umfang der Software und Anzahl der Clients kann dies aber katastropfahle Auswirkungen auf die Netzwerbelastung haben und sollte daher eher nicht durchgeführt werden. Bei kleineren Umgebungen ist dieses Verfahren aber durchaus praktikabel.
2. Snapshoot
da wo der Hersteller kein MSI liefert, kann man durch "Repackaging" versuchen selbst ein bestmögliches Paket zu erstellen. Das Snapshoot-Verfahren wird von den verschiedenen Herstellern unterschiedlich gut beherrscht. Hier ist eine gewisse grundsätzliche Homogenität unter den Ziel-Clients sinnvoll. Ein wesentlicher Vorteil des Verfahren ist dass die heute verfügbaren Tools es erlauben mit geringen Aufwand nahezu jedes Setup zu autoamtisieren. Als Ergebnis wird oft eine MSI Paket erstellt. Gravierender Nachteil dieses Verfahren ist, dass es auf der Konfiguration des Clients beruht auf dem der Snapshot ausgeführt wird. Die gesamte Intelligenz die im Installationsprogramm des Herstellers mitgeliefert wird geht verloren. Daher ist das Snapshot verfahren ein typisches 80:20 Verfahren. Mit geringem Aufwand kann man ein Lösung für 80% der Installation erreichen. Man sollte sich aber darauf einstellen bei einem nicht zu vernachlässigenden Anteil von Clients auf Probleme zu stossen. Ein weiteres prinzipielles Problem ergibt daraus dass man nicht mehr das Originalverfahren des Herstellers verwendet. Damit kann sich dieser im Zweifelsfall (Support, Schaden) rechtlich aus der Verantwortung zurückziehen. Daher ist das Snapshot Verfahren eher mit Vorsicht zu geniessen - eigenltich ist es die Aufgabe des Herstellers eine Setup zu liefern, dass den Bedürnissen des Kunden gerecht wird (s. MSI).
3. Images
Verschiedene Hersteller bieten die Möglichkeit fertige Festplattenimages auf die Clients zu verteilen. Einzelne Hersteller (OMA-Technologies) bieten sogar die Möglichkeit Images nachträglich zu modifizieren. Dieses Verfahren erfordert die größtmögliche Client-Homogenität. Images eignen sich nur zur kompletten Installation des System. Mit Images kann keine zusätzliche Software auf ein bereits installiertes System gebracht werden. Der wesentliche Vorteil von Images liegt in der sehr schnellen Installation.
Bei Ausführen eines Setups werden immer und immer wieder die gleichen Prüfungen durchgeführt. Das System wird u.U. mehrfach gebootet und je nach Performanz der CPU und Speicherausstattung dauert das Auspachen der Installationsquellen u.U. recht lang. Bei einem Image werden einfach alle Dateien nur ein einziges mal kopiert.
Nachteil von Images ist dass sie nur eine Lösung für die einmalige Installation bieten. Um ein bestehende Client Landschaft dauerhaft zu Betreiben sind sie naturgemäss nicht geeignet.
Die Verwendung von Images empfiehlt sich immer dann wenn man schnell ein grosse Anzahl von gleichen Rechnern initial installlieren will. Insbesondere die Hersteller von Comsumer Rechnern verwenden Images.
4. Original-Setup-Installation ("silent")
Da wo das Setup die Möglichkeit bietet, "silent" abzulaufen, kann man mit fast allen Deployment-Systemen auch einfach das Original-Setup verteilen und mit den entsprechenden Kommandozeilenparametern aufrufen.
5. "Original-Setup-Installation"
Von den Installationspaketen, die der Admin selbst erstellen kann, bietet dieses Verfahren die höchste Kompatibilität, da das Original-Setup, welches der Hersteller einer Software getestet hat verwendet wird. Auch stellt es die geringsten Anforderungen an die Homogenität der Clients.
Hier noch ein paar Anmerkungen aus der Praxis zu den einzelnen Installations-Verfahren:
1. MSI hat als Installationsverfahren den Vorteil perfekt auf Windows abgestimmt zu sein. Die MSI-Datenbank speichert alle Komponenten, die während der Installation geändert oder kopiert werden, und garantiert so, dass zu jeder Zeit ein vollständiges "Rollback" möglich ist. Dies gilt aber nur für MSI-Pakete vom Hersteller der Software. Bei selbsterstellten MSI-Paketen (Repackaging) gilt dieses nur eingeschränkt. Ein lesenswerter Artikel zu dem Thema findet sich unten.
2. Das Snapshoot-Verfahren ist wohl das am weitesten verbreitete Verfahren zur Verteilung von Software. Nicht zuletzt auch deshalb weil NetInstall hier eine der besten Lösungen hat und wohl das am weitesten verbreitete Verfahren ist. Man kann wohl sagen, dass die Systeme, die nur auf dieses Verfahren zurückgreifen hier auch nochmals deutlich benutzerfreundlicher sind, als Systeme die Snapshoot nur als "ME TO" Lösung anbieten, wie zum Beispiel Symantecs ON Command CCM. Anwender berichten, dass die NetInstall Snapshoot Funktion wesentlich praxistauglicher sein soll. Was nicht unbedingt verwundert, da ON Command hauptsächlich auf das "Original Setup" zurückgreift und hier auftrumpfen kann. Snapshoot-Pakete sind ab einer bestimmten Komplexität nur schwer zu beherrschen, da der Ersteller die Original-Routinen des Hersteller-Setups-Programmes nicht kennt. Daher verlangen manche Software Hersteller dass Ihre Produkte nicht via Snapshoot verteilt werden (Supportverlust).
5. Zum "Original-Setup" Das "Original-Setup" mit "Point and Click". Dieses Verfahren wird derzeit nur von
a) Symantecs ON Command CCM (http://www.symantec.com) b) Baramundi deploy script (http://www.baramundi.de)
praxistauglich beherrscht. Dabei ist die baramundi Technologie nochmals deutlich vielseitiger. So kann man unter anderem Abfragen ob bestimmte Fenster erscheinen und dann im Installations-Skript darauf reagieren. Derzeit stellt die baramundi Lösung für diese Art der Installation wohl das Optimum dar. Gegenüber dem Snapshoot-Verfahren unterscheiden sich die Pakete unter anderem auch dadurch, dass diese nicht im Hintergrund installiert werden können, sondern in dieser Zeit der PC nicht benutzt werden kann. Darüberhinaus hat das Verwenden der Original-Setup Routinen den Vorteil, dass keine Support-Probleme mit dem Hersteller einer Software zu befürchten sind. Viele Hersteller fragen bei Support-Anfragen zunächst "wurde das Produkt bei Ihnen automatisch oder manuell installiert?". Um das "Original Setup" mit anderen Deployment Systemen als den obengenannten zu verwenden, gibt es zwei Möglichkeiten:
a) Freeware: AutoIt v.3 (http://www.hiddensoft.com/AutoIt) b) WinRobots: http://www.winrobots.com/
Dabei ist AutoIt als kostenlose Alternative für einfache Setups und durchaus einen Blick wert. Die schnellere und professionellere Alternative ist aber auch hier das kommerzielle Produkt "WinRobots". Der Unterschied besteht im wesentlichen darin, dass WinRobots auch für schwierige Setups optimiert wurde und so immer ein verteilungsfähiges Paket liefert.
Konfiguration von Anwendungen
In der Regel sind die Anwender mit der Durchführung der Konfiguration von Anwendungen überfordert (z.B. Eintragen eines Proxy-Server für einen HTML Browser). Überlässt man die Konfiguration der Anwendungen den Anwendern können zusätzlich Sicherheitsrisiken entstehen (z.B. Virenscanner deaktiviert). Eine fehlerhafte Konfiguraton von Anwendungen ist die häufigste Ursache für Störungen bei der Nutzung von Anwendungen.
Daher müssen die Anwendungen, nachdem sie durch die Softwareverteilung installiert wurden, noch konfiguriert werden. Dabei werden die Parameter der Anwendung festgelegt. Dies sind z.B:
- Verweise auf andere Computer
- Lizenzschlüssel
- Pfade
Dabei kann es sich einerseits um generelle Parameter handeln, die für alle Anwender der Applikation festgelegt werden sollen oder um Parameter, die für jeden Anwender der Applikation individuell konfiguriert werden sollen. Es ist auch zu unterscheiden ob die Konfiguration nur einmalig erfolgen soll (Anwender bekommt sinnvolle Einstellungen, die er aber individuell anpassen kann) oder aber ob die Softwareverteilung sicherstellen soll, dass die Einstellungen durch den Anwender nicht verändert werden können, bzw. das Änderungen automatisch rückgängig gemacht werden. Ein System zur Softwareverteilung sollte daher in der Lage sein diese Parameter zentral zu verwalten und automatisiert anzuwenden.
Konfigurationsverwaltung
Ein üblicher Anwender benötigt für seine tägliche Arbeit heute eine große Anzahl von Programmen. Für jeden Anwender/Computer muss daher eine Liste der Pakete hinterlegt werden, die durch die Softwareverteilung installiert werden sollen. Weiterhin müssen die Parameter zur Konfiguration der Anwendungen hinterlegt werden (wieder pro Anwender/Computer). Es ist dabei sehr hilfreich die Anwender/Computer zu gruppieren. Der Administrator der Softwareverteilung kann dann entweder eine ganze Gruppe von Computer/Anwendern oder einzelne konfigurieren, was den Arbeitsaufwand erheblich reduziert.
Für ein effizientes und sicheres Arbeiten ist es weiterhin notwendig dass zu jedem Zeitpunkt einfach die aktuelle Soll-/Ist-Konfiguration eines Computers dargestellt werden kann. Nur so kann der Administrator feststellen, ob die angestrebte Umgebung funktioniert. Da es sich oft um ein sehr große Anzahl von Computern handelt sind auch leistungsfähige Abfragewerkzeuge notwendig, mit denen sich statistische Aussagen machen lassen (z.B. auf wie vielen Computer ist die Software X installiert?).
Die effiziente, transparente und sichere Konfigurationsverwaltung ist maßgeblich für den Erfolg einer Softwareverteilung ausschlaggebend. Fehler in der Konfigurationsverwaltung können sehr leicht massive Störungen nach sich ziehen (z.B. aufgrund falscher Proxy Einstellungen kann kein Anwender mehr auf das Internet zugreifen). Daher sind Maßnahmen zur Qualitätssicherung ein absolutes Muss. Dies sind z.B. Dokumentation der Konfiguration, Schulung der Administratoren, Vieraugenprinzip, Statistische Auswertungen etc.
Softwareverteilungssysteme
- Deployment Solution von Altiris
- M23 OpenSource Softwareverteilung für Linux
- On Command CCM von Symantec (On Technologies)
- Baramundi Management Suite von Baramundi
- NetInstall von Enteo (ehemals NetSupport)
- Radia von HP (Novadigm)
- Empirum von Matrix42
Links
Softwareverteilungsforum: Doctor Deploy
[http://groups.google.com/groups?q=MSI+repackaging+problem&hl=de&lr=&ie=UTF-8&selm=OIEdkOREAHA.60%40cppssbbsa04&rnum=2 Interessantes zum Thema MSI}