ADMIN

2024

02

2024-01-30T12:00:00

Softwareverteilung und Patchmanagement

SCHWERPUNKT

082

Softwareverteilung

Patchmanagement

Softwareverteilung und Patchmanagement mit opsi 4.3

Lücken schnell geschlossen

von Heike Jurzik

Veröffentlicht in Ausgabe 02/2024 - SCHWERPUNKT

Um die Sicherheit und die Verfügbarkeit von Systemen zu gewährleisten, ist ein Patchmanagement mit einer automatischen Softwareverteilung unverzichtbar. Das freie opsi tritt in der aktuellen Version 4.3 an, um das schnell zu erledigen – egal, ob es sich um drei oder 3000 Clientrechner handelt. Unser Workshop erklärt den Aufbau der Anwendung und geht dann ausführlich auf das Paketieren und Verteilen von Anwendungen in opsi-Umgebungen ein. Abschließend liefern wir Tipps und Tricks zur Überprüfung und Analyse.

Das Clientmanagement-System opsi (Open System Integration) [1] gibt es seit Mitte der 1990er-Jahre. Damals kümmerte sich opsi um rund 2000 Windows-Rechner einer Landesverwaltung, 20 Jahre später unterstützt die Software auch Linux- und macOS-Rechner und eignet sich damit für heterogene Umgebungen. Sie bewährt sich zudem in großen Installationen mit Clientrechnern an verschiedenen Standorten. Mit ihrem zentralisierten Ansatz für das Verteilen von Patches, Updates und Hotfixes ist sie ein freies Werkzeug für IT-Verantwortliche, die heterogene Umgebungen administrieren.
Die Open-Source-Software listet alle ihre Hauptbestandteile unter der AGPLv3-Lizenz. Der Hersteller uib aus Mainz, bietet darüber hinaus kostenpflichtige Erweiterungen an. Die 2023 erschienene Version 4.3 [2] gibt zwei bisher kostenpflichtige Module frei: das MySQL-Backend und UEFI-Support.
So funktioniert opsi
Die Kernkomponente ist ein Linux-Server, der sich um die automatische Installation der Betriebssysteme (nur Windows und Linux), die Verteilung von Software, die Inventarisierung von Hard- und Software sowie um das Patchmanagement auf den Clients kümmert. Die Konfiguration wird an zentraler Stelle in einem MySQL-Backend gespeichert; das in früheren opsi-Versionen alternativ verwendete dateibasierte Backend gibt es ab der aktuellen Version 4.3 nicht mehr. Die Installationsdateien der zu verteilenden Anwendungen und Betriebssysteme liegen auf einem oder mehreren Depotservern.
Das Clientmanagement-System opsi (Open System Integration) [1] gibt es seit Mitte der 1990er-Jahre. Damals kümmerte sich opsi um rund 2000 Windows-Rechner einer Landesverwaltung, 20 Jahre später unterstützt die Software auch Linux- und macOS-Rechner und eignet sich damit für heterogene Umgebungen. Sie bewährt sich zudem in großen Installationen mit Clientrechnern an verschiedenen Standorten. Mit ihrem zentralisierten Ansatz für das Verteilen von Patches, Updates und Hotfixes ist sie ein freies Werkzeug für IT-Verantwortliche, die heterogene Umgebungen administrieren.
Die Open-Source-Software listet alle ihre Hauptbestandteile unter der AGPLv3-Lizenz. Der Hersteller uib aus Mainz, bietet darüber hinaus kostenpflichtige Erweiterungen an. Die 2023 erschienene Version 4.3 [2] gibt zwei bisher kostenpflichtige Module frei: das MySQL-Backend und UEFI-Support.
So funktioniert opsi
Die Kernkomponente ist ein Linux-Server, der sich um die automatische Installation der Betriebssysteme (nur Windows und Linux), die Verteilung von Software, die Inventarisierung von Hard- und Software sowie um das Patchmanagement auf den Clients kümmert. Die Konfiguration wird an zentraler Stelle in einem MySQL-Backend gespeichert; das in früheren opsi-Versionen alternativ verwendete dateibasierte Backend gibt es ab der aktuellen Version 4.3 nicht mehr. Die Installationsdateien der zu verteilenden Anwendungen und Betriebssysteme liegen auf einem oder mehreren Depotservern.
Alle Komponenten kommunizieren über den Dienst opsiconfd und dessen zentrale API. Auf allen angeschlossenen Rechnern läuft der opsi-Clientagent, der die Kommunikation zwischen Clients und Server sicherstellt. Der Agent sorgt ebenfalls dafür, dass Installationen und Aktualisierungen reibungslos und ohne jegliche Benutzerbeteiligung ablaufen.
Derzeit stehen zwei grafische Benutzerschnittstellen zur Verwaltung von opsi-Umgebungen zur Verfügung: die Managementoberfläche opsi-configed und opsi-WebGUI zur Administration im Browser. Zur schnellen Installation eines opsi-Servers bietet der Hersteller ein Docker-Image und eine vorkonfigurierte virtuelle Maschine an [3]. Alternativ stehen fertige Pakete für alle gängigen Linux-Distributionen bereit. Eine Liste aktuell unterstützter Betriebssysteme für Server und Clients liefert die Supportmatrix [4].
Vorbereitete Pakete einsetzen
Zur Verteilung von Software mit opsi stehen fertige Pakete bereit: Localboot-Produkte (Anwendungen für Clients, auf denen bereits ein Betriebssystem installiert ist) und Netboot-Produkte (unabhängig vom Betriebssystem, Ausführung per TFTP/PXE, beispielsweise für die automatische OS-Installation). Diese Pakete tragen die Dateiendung "opsi" und viele vorgefertigte finden Sie unter [5] im Ordner des jeweiligen Betriebssystems. Die dort angebotenen Localboot- und Netboot-Produkte stammen alle vom Hersteller. Zu den Localboot-Produkten gehört auch der Agent, der auf angeschlossenen Windows-, Linux- und macOS-Clients installiert sein muss.
Bevor Sie opsi-Produkte auf den Clients ausrollen können, stellen Sie die Pakete im Depot bereit. Das geht entweder automatisch oder von Hand. Im ersten Fall nutzen Sie das Kommandozeilentool opsi-package-updater, um Pakete aus dem offiziellen Repository herunterzuladen und auf dem Server zu installieren. Wer den manuellen Weg bevorzugt, lädt die Pakete von Hand herunter und nutzt das Werkzeug opsi-package-manager.
Produkte auf Clients installieren
Um opsi-Produkte auf den Clients auszurollen, verwenden Sie eine der beiden grafischen Schnittstellen. Egal, ob in opsi-configed oder in der WebGUI: Zunächst wählen Sie einen oder mehrere Clients aus, wobei die Software auch Clientgruppen unterstützt. Danach setzen Sie das Produkt auf "setup". Optional bearbeiten Sie vor der Installation die Produkteigenschaften und legen so etwa die Sprache der Anwendung fest oder richten eine Desktopverknüpfung ein. Besitzt das Produkt Abhängigkeiten zu weiteren Paketen, dann installieren die grafischen Benutzeroberflächen diese automatisch.
Es ist nicht erforderlich, Produkte sofort auszurollen. Vielmehr kann opsi Aktionen verzögert und beispielsweise beim nächsten Systemstart oder beim Herunterfahren eines Rechners ausführen ("Install on Shutdown"). Alle Clients arbeiten ausstehende Aktionen vor der Benutzeranmeldung automatisch ab. Für Windows-Rechner gibt es zudem den opsi-Loginblocker, der verhindert, dass sich Benutzer anmelden, während eine Installation läuft. Die Anmeldemaske erscheint dann erst, wenn die Installation beendet ist.
Für große, verteilte Umgebungen bietet es sich an, mehrere Depots an den jeweiligen Standorten einzurichten. Clients, die sich an unterschiedlichen Standorten befinden, können dank der dynamischen Depotzuweisung das jeweils schnellste auswählen. Darüber hinaus ist es problemlos möglich, die Depots mit unterschiedlichen Produkten auszustatten. Dann rollt opsi beispielsweise auf Clients an Standort A grundsätzlich Firefox aus und auf Clients am Standort B den Chrome-Browser.
Zur Softwareverteilung wählen Sie erst einen oder mehrere Clients aus, danach setzen Sie die gewünschten Produkte auf "setup".
Pakete selbst bauen
Wollen Sie selbst Software und damit auch regelmäßig Updates und Patches auf den opsi-Clients verteilen, bauen Sie eigene opsi-Produkte. Jedes davon enthält neben den Installationsdateien und den Metadaten zusätzlich ein Skript ("opsi-script" [6]), das sozusagen den Rohbau bildet. Auch wenn es möglich ist, solche Skripte im Texteditor zu erstellen und zu bearbeiten, ist das nicht zwingend erforderlich – es gibt grafische Programme, die Sie dabei unterstützen.
Das Werkzeug opsi-setup-detector, das unter Windows, Linux und macOS läuft, analysiert bestehende Installationspakete und Setupdateien und erzeugt dazu passende Skripte. Dabei unterstützt opsi diverse Formate für die unterschiedlichen Betriebssysteme. Unter Windows verteilt es MSI-Pakete, Setupprogramme mit Silent-Schaltern und Windows-Updates.
Auf Linux-Systemen unterstützt es Pakete im DEB- und RPM-Format, Third-Party-Installer und die Installation aus dem Quellcode. Schließlich verteilt das Tool macOS-Software als DMG-, ZIP-, PKG- oder TGZ-Datei. Im Setup-Detector ist es ebenfalls möglich, Produkteigenschaften und -abhängigkeiten zu definieren.
Zentralisierte Protokolle und Health-Check
Über die grafischen Oberflächen erreichen Sie nicht nur die Logfiles aller Clients, sondern auch Informationen zu nicht richtig installierten Paketen oder verfügbaren Updates. Über Filter- und Suchfunktionen ist es möglich, nur die Clients anzuzeigen und auszuwählen, auf denen eine Anwendung veraltet ist. So ist es problemlos möglich, auch große Umgebungen mit vielen Clients mit aktueller Software auszustatten.
Seit opsi 4.3 gibt es zudem einen Health-Check, der den Zustand der opsi-Infrastruktur auf potenzielle Probleme überprüft. Er zeigt unter anderem Informa- tionen zur Konfiguration, zu den Serverdiensten und dem Festplattenverbrauch an, aber auch zu den Produkten in den Depots und auf den Clients an. Den Health-Check erreichen Sie über die beiden grafischen Oberflächen oder über den Befehl opsiconfd health-check auf der Kommandozeile.
Fazit
Administratoren können mit opsi dank der Automatisierung vieler Prozesse vor allem das Risiko von Sicherheitslücken minimieren. Das Werkzeug ist flexibel und enthält Tools, die das Paketieren und Verteilen von Software erleichtern. Zentral gespeicherte Protokolle und der neu eingeführte Health-Check verbessern die Übersichtlichkeit und erleichtern Wartung und Monitoring des Clientmanagement-Systems.
(jp)
Link-Codes
[1] opsi-Homepage: https://opsi.org/de/
[2] Neuerungen in opsi 4.3: https://opsi.org/de/blog/opsi-43-release/