Zum Inhalt springen

Softwareverteilung

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 4. August 2005 um 13:33 Uhr durch Finanzer (Diskussion | Beiträge) (Änderungen von Benutzer:148.198.40.56 rückgängig gemacht und letzte Version von Benutzer:194.127.2.73 wiederhergestellt). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Softwareverteilung nennt man Prozesse zur Installation von Software auf Anwender-PCs oder Servern in Betrieben.

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 qualifizierte Mitarbeiter diese Aufgabe für die Anwender erledigen. 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

Ziel des Einsatzes einer Softwareverteilung ist es, eine vollautomatische Erstinstallation, 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. Häufig strebt man auch an, dass die PCs möglichst einheitlich mit Software ausgestattet werden. Als Nebeneffekt erhält man oft eine Kontrolle über die Ausnutzung der vorhandenen Softwarelizenzen.

Dieses Ziel lässt sich mit heute verfügbaren Systemen zur Softwareverteilung durchaus erreichen. So gibt es Umgebungen, in der ein einziger Mitarbeiter mehr als 10.000 Computer administriert.

Rollen der Softwareverteilung

  • Administrator: betreibt, pflegt und konfiguriert das System
  • Anwender: erhält benötigte Anwendungen automatisch 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.

Die Rollen sind nicht immer scharf voneinander trennbar. Auch können, oftmals bei kleineren Firmen und Organisationen, mehrere Rollen durch eine Person ausgefüllt werden.

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, usw.
  • Computer: erhält durch die Softwareverteilung das OS und die Anwendungen installiert. Wird durch die Softwareverteilung konfiguriert
  • Paket: Sammlung von Dateien welche eine Applikation automatisiert 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 Progamm das 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 physische 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, siehe unbeaufsichtigte Installation

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, usw.) 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.

Windows Installationstechniken

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 Installation komfortabel an die eigenen Bedü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 Installation versetzt (ROLLBACK). MSI sollte auf jeden Fall die bevorzugte 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-Pakete können theoretisch direkt unter Verwendung des Active Directory an einzelne Rechner, OU's oder eine Domäne verteilt werden. Je nach Umfang der Software und Anzahl der Clients kann dies aber katastrophale Auswirkungen auf die Netzwerkbelastung haben und sollte daher eher nicht durchgeführt werden. Bei kleineren Umgebungen ist dieses Verfahren aber durchaus praktikabel.

2. Snapshot

Wenn der Hersteller kein MSI liefert, kann man durch "Repackaging" versuchen selbst ein bestmögliches Paket zu erstellen. Das Snapshot-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 Verfahrens ist, dass die heute verfügbaren Tools es erlauben mit geringem Aufwand nahezu jedes Setup zu automatisieren. Als Ergebnis wird oft ein MSI-Paket erstellt. Gravierender Nachteil dieses Verfahrens 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 eine 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 stoßen. Ein weiteres prinzipielles Problem ergibt sich 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 genießen - eigentlich ist es die Aufgabe des Herstellers ein Setup zu liefern, dass den Bedürfnissen des Kunden gerecht wird (s. MSI). In der Regel liefert aber auch der Hersteller des SnapShot Produktes den entsprechenden Support, sodass Anwender auf der sicheren Seite sind.

Verfügt der Snapshot Editor - und entsprechend der Client - über anpassbare integrierte Regeln, so wird das 80:20 Verfahren durchbrochen (Anwender berichten hier von einer 100%igen Zuverlässigkeit in heterogenen Umgebungen). Verfügt das Snapshot Verfahren weiterhin über einen Conflict Checker, so können im Vorfeld Konflikte erkannt und behoben werden (bevor eine Software ausgerollt wird). Eine optimale Ergänzung dazu sind optimierte und verschlüsselte Übertragungen, Rollback und Check Point Restart.

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 Systems. 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 Auspacken 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 eine bestehende Client-Landschaft dauerhaft zu betreiben, sind sie naturgemäß nicht geeignet.

Die Verwendung von Images empfiehlt sich immer dann, wenn man schnell eine große Anzahl von gleichen Rechnern initial installieren will. Insbesondere die Hersteller von Comsumer-Rechnern verwenden Images.

4. Original-Setup-Installation ("silent")

Wenn 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. Leider muss man in der Praxis immer wieder feststellen, dass der Begriff "silent" unterschiedlich verstanden wird. Für eine Softwareverteilung bedeutet silent: NIEMALS ein Popup Fenster, das auf die Eingabe eines Benutzers wartet.

Unrühmliches Beispiel für Hersteller, die sich an diese eigentlich einfache Vorgabe nur unzureichend halten, ist Microsoft. Neben einem Dschungel an Kommandozeilenparametern kommt es immer wieder vor, dass trotz richtig gesetzter Parameter Meldungsfenster angezeigt werden.

Daher ist die MSI-Technologie klar zu bevorzugen - leider liefert auch Microsoft selbst viele Installationsprogramme noch nicht als MSI-Paket aus.

Früher war es gang und gäbe, für die Setupprogramme, die keine silent-Installation bieten, ein zusätzliches Programm zu schreiben, das dann Maus- und Tastatur-Ereignisse sendet. Diese "Krücken" sind heute nicht mehr akzeptabel und sollten nur im Notfall angewendet werden.

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.

Praxistipps

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 Snapshot-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 Snapshot nur als "ME TO" Lösung anbieten, wie zum Beispiel Symantecs ON Command CCM. Anwender berichten, dass die NetInstall-Snapshot-Funktion wesentlich praxistauglicher sein soll. Was nicht unbedingt verwundert, da ON Command hauptsächlich auf das "Original Setup" zurückgreift und hier auftrumpfen kann. Snapshot-Pakete sind ab einer bestimmten Komplexität nur schwer zu beherrschen, da der Ersteller die Original-Routinen des Hersteller-Setup-Programmes nicht kennt. Daher verlangen manche Software Hersteller, dass Ihre Produkte nicht via Snapshot verteilt werden (Supportverlust).

Prism Deploy verfügt im Gegensatz dazu über ein integriertes Regelwerk mit Conflict Checker. Der Hersteller übernimmt auch den entsprechenden Support für die Paketierung. Weitere Features sind Rollback, Checkpoint Restart, optimierte Übertragung, selbstregelnde Netzwerklast, Paketauthentisierung (digitale Signatur) und Installation auf dem Login Bildschirm unter jedwedem Benutzerkonto mit automatisch wählbarem Nachziehen der benutzerspezifischen Teile für andere Anwender. Die Installation kann auch erfolgen, während der Benutzer angemeldet ist und weiterarbeitet. Alle Daten werden komprimiert und verschlüsselt übertragen.

3. Zum "Original-Setup" Das "Original-Setup" mit "Point and Click". Dieses Verfahren beherrschen derzeit nur Symantecs ON Command CCM, baramundi Deploy script und Prism Deploy. Dabei ist die Baramundi und Prism Deploy-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 und Prism Deploy-Lösung für diese Art der Installation wohl das Optimum dar. Gegenüber dem Snapshot-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. Prism Deploy kann darüber hinaus die Installation auf auf dem Login Bildschirm unter jedwedem Beutzerkonto vornehmen.

Darüber hinaus 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 oben genannten zu verwenden, gibt es spezielle Scripting-Software. Dabei ist die Freeware autoscript oder den Ableger Autohotkey für einfache Setups durchaus einen Blick wert. Die kommerzielle und professionellere Alternative ist das kommerzielle Produkt WinRobots Installations-Skript. Der Unterschied besteht im Wesentlichen darin, dass WinRobots auch für schwierige Setups optimiert wurde und so immer ein verteilungsfähiges Paket liefert.

Prism Deploy verfügt darüber hinaus über alle Arten der Softwareverteilung, also der optimierten Paketierung, der Silent Installation, MSI Installationen, sowie der Erstellung von Transformdateien mit kostenlosem InstallShield Prof X und dem Original Setup.

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 Konfiguration 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 und 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. dass Ä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 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