Unter den Open-Source-Clientmanagement-Systemen ist opsi der Platzhirsch. Es ist über 20 Jahre auf dem Markt und hat sich in vielen Umgebungen bewährt. Dies ist jedoch kein Grund für die Entwickler sich auszuruhen. Die Version 4.2 bringt Neuerungen für die Server- und die Clientkomponenten und die Installation soll als Docker-Image noch einfacher von der Hand gehen. Mit der neuen WebGUI steht jetzt auch ein modernes Managementinterface in den Startlöchern.
Schon Mitte der 1990er-Jahre kümmerte sich opsi (Open System Integration) [1] bei einer Landesverwaltung um rund 2000 Windows-Rechner an verschiedenen Standorten. Heutzutage ist der Veteran des freien Clientmanagements in vielen kleinen und mittleren heterogenen Umgebungen im Einsatz, verwaltet Win-dows-, Linux- und macOS-Clients – von einem Dutzend bis zu mehreren tausend Rechnern. Die größte Installation umfasst laut Hersteller mehr als 15.000 Clients.
Bei opsi handelt es sich um eine Open-Source-Software und alle Hauptbestandteile stehen unter der AGPLv3-Lizenz. Der Hersteller uib aus Mainz bietet darüber hinaus kostenpflichtige Erweiterungen an – zum Kauf oder als Subskription. Die 2021 erschienene Version 4.2 setzt auf moderne Technologien wie Python 3, Uvicorn, Starlette und FastAPI. Etwas altbacken wirkt dagegen die Managementoberfläche. Die Tage der Java-Applikation sind jedoch gezählt – die zeitgemäße Web-GUI soll künftig diesen Job übernehmen.
Aufbau und Komponenten
Die opsi-Kernkomponente bildet ein Linux-Server, der sich um die automatische Installation der Betriebssysteme Windows und Linux, die Softwareverteilung, die Inventarisierung von Hard- und Software sowie um das Patchmanagement auf den Clients kümmert. Dazu kommen Module, die den Funktionsumfang erweitern.
Schon Mitte der 1990er-Jahre kümmerte sich opsi (Open System Integration) [1] bei einer Landesverwaltung um rund 2000 Windows-Rechner an verschiedenen Standorten. Heutzutage ist der Veteran des freien Clientmanagements in vielen kleinen und mittleren heterogenen Umgebungen im Einsatz, verwaltet Win-dows-, Linux- und macOS-Clients – von einem Dutzend bis zu mehreren tausend Rechnern. Die größte Installation umfasst laut Hersteller mehr als 15.000 Clients.
Bei opsi handelt es sich um eine Open-Source-Software und alle Hauptbestandteile stehen unter der AGPLv3-Lizenz. Der Hersteller uib aus Mainz bietet darüber hinaus kostenpflichtige Erweiterungen an – zum Kauf oder als Subskription. Die 2021 erschienene Version 4.2 setzt auf moderne Technologien wie Python 3, Uvicorn, Starlette und FastAPI. Etwas altbacken wirkt dagegen die Managementoberfläche. Die Tage der Java-Applikation sind jedoch gezählt – die zeitgemäße Web-GUI soll künftig diesen Job übernehmen.
Aufbau und Komponenten
Die opsi-Kernkomponente bildet ein Linux-Server, der sich um die automatische Installation der Betriebssysteme Windows und Linux, die Softwareverteilung, die Inventarisierung von Hard- und Software sowie um das Patchmanagement auf den Clients kümmert. Dazu kommen Module, die den Funktionsumfang erweitern.
Mit opsi verwaltete Clients, die sich an mehreren Standorten befinden, zeigen sich in einer zentralen Administrationsoberfläche. Die Konfiguration des opsi-Systems, der Depots und der Client-Komponenten wird an zentraler Stelle gespeichert. Der Server (opsi-server) kann die Daten in zwei verschiedenen Backends vorhalten: dateibasiert oder in einer Datenbank (MySQL/ MariaDB). Letzteres ist aus Performancegründen die Voreinstellung für die Inventarisierung. Die Depots für die Clients mit den Installationsdateien für Software und Betriebssysteme sowie Boot-Images können auch an mehreren Orten liegen.
Außer der Serverkomponente und den Clients (opsi-client-agent, opsi-linux-client-agent und opsi-mac-client-agent) sind in einer opsi-Installation sogenannte "Produkte" zu finden. Dabei handelt es sich um paketierte Software, die auf den verschiedenen Rechnern in der Umgebung läuft und ganz unterschiedliche Aufgaben übernimmt. Es gibt Localboot-Produkte für Clients, auf denen das Betriebssystem schon läuft (etwa opsi-client-agent, opsi-script, opsi-configed, swaudit/hwaudit und so weiter). Dazu kommen Netboot-Produkte, die zum Verteilen der Betriebssysteme über einen TFTP-Server gedacht sind. Dazu gehören die automatische Betriebssysteminstallation für Windows- und Linux-Clients sowie ein Memory-Test, die Hardware-Inventariserung und wipedisk.
Das System bietet mehrere Schnittstellen zur Verwaltung von opsi und den Clients an. Der zentrale Konfigurations-Daemon für den Server heißt opsiconfd. Alle Clientkomponenten verbinden sich mit diesem Dienst, der die zentrale API für den Zugriff auf die Daten in den Backends bereitstellt. Die Java-Anwendung opsi-configed erlaubt Zugriff auf die Einrichtung der Clients, der Software-Depots, der Produkte und der Logfiles. Bevor es weiter ins Detail zu den Administrations-Interfaces geht, ein paar Worte zur Installation.
Installation und Einrichtung
Ein opsi-Server benötigt mindestens 2 erforderliche Festplattenplatz richtet sich nach der Anzahl der opsi-Pakete – hier sollten Sie für eine Produktivumgebung lieber großzügig planen und mindestens 15 GByte unter "/tmp" sowie 60 GByte für "/var/lib/opsi" einplanen. Der opsi-Server läuft unter x86-64- und ARM64-Systemen; die aktuelle Version opsi 4.2 unterstützt die folgenden Linux-Distributionen: Debian 9/10/11, Ubuntu 18.04/ 20.04/22.04, RHEL 8, Alma Linux 8, Ro-cky Linux 8, SLES 15 SP1/SP2/SP3, openSuse Leap 15.3 und UCS4.4/5.0.
Zur schnellen Inbetriebnahme bietet der Hersteller fertig installierte virtuelle Maschinen an, die unter VMware, ESXi-Server und Virtualbox laufen. Außerdem gibt es das Programm opsi-QuickInstall, das einen opsi-Server flink auf aktuellen Linux-Distributionen einspielt.
Seit Kurzem gibt es außerdem ein Docker-Image für die Serverkomponenten. Im GitHub-Repository der opsi-Entwickler findet sich seit ein paar Monaten ein fertiges Docker-Image [2], das – je nach Konfiguration – einen opsi-Server oder einen Depotserver einrichtet. Auf die Samba-Unterstützung haben die Entwickler bewusst verzichtet und als Protokoll zur Datenübertragung vom Depot kommt WebDAV zum Einsatz. Das Image benötigt außerdem das MySQL-Backend; die dateibasierte Datenhaltung im Backend entfällt. Eine entsprechende opsi-Lizenz für die MySQL-Erweiterung [3] ist damit Voraussetzung.
Um das Image auszuprobieren, benötigen Sie Docker Compose 1.17.0 und die Docker Engine in Version 17.09.0 oder neuer. Die beigelegte YAML-Datei konfiguriert einen Datenbankserver (MariaDB), Redis und das RedisTimeSeries-Modul, Grafana sowie die aktuelle Version des opsi-Servers. Die Entwickler haben weiterhin zwei Skripte beigefügt, die das Arbeiten mit den Docker-Containern unter Linux und Windows vereinfachen.
Alte und neue Administrationsoberflächen
Wie erwähnt ist opsiconfd der zentrale Konfigurations-Daemon. Sie erreichen den Dienst über Port 4447 im Webbrowser. Sämtliche Clientkomponenten nutzen diesen Dienst, um auf die Daten im Backend zuzugreifen. Damit sind nicht nur die opsi-Clients für Windows, Linux und macOS gemeint, sondern auch die Managementoberfläche opsi-configed, die Bootimages und so weiter.
Ein Terminal-Interface zur Arbeit auf der Kommandozeile auf dem opsi-Server ist ebenfalls dabei. Überaus praktisch ist der Reiter "Grafana", der mit opsi 4.2 eingeführt wurde. Der opsi-Server speichert inzwischen Session-Daten, Protokolle und Performancedaten (CPU-/Speicherverbrauch, HTTP-Anfragen, Threads et cetera) in der In-Memory-Datenbank Redis. Ein Grafana-Dashboard stellt die Performancedaten in unterschiedlichen Diagrammen übersichtlich dar.
Die Managementoberfläche ist eine Java-Anwendung namens "opsi-configed" und läuft unter Linux, Windows und macOS. Sie liefert die benötigte Java-Laufzeitumgebung automatisch mit. Das Programm ist mehrsprachig (deutsch, englisch, französisch) und lässt sich auch auf Rechnern installieren, die nicht zur opsi-Umgebung gehören. Diese GUI kommuniziert per HTTPS mit opsiconfd und nutzt ebenfalls den Port 4447. Über Schaltflächen im Hauptfenster erreichen Sie das Konfigurations-Interface für Clientrechner, für die Depotserver und den opsi-Server. Weiterhin gibt es Buttons, die jeweils andere Ansichten öffnen für Gruppen- oder Produktaktionen beziehungsweise das Lizenzmanagement.
Seit Kurzem gibt es eine neue webbasierte Managementoberfläche: opsiweb ist als opsiconfd-Add-on implementiert. Die neue opsi-WebGUI ist ab Version 4.2.1 an Bord und soll – alternativ zur Java-Anwendung opsiconfiged – eine Administrationsoberfläche bereitstellen. Die WebGUI läuft im Browser und macht auch auf Mobilgeräten eine gute Figur. Sie erfordert die Freischaltung des MySQL-Moduls, denn sie greift aus Performancegründen direkt auf die Datenbank zu. Das Backend der Weboberfläche setzt auf das Python-Framework FastAPI, das Frontend auf die JavaScript-Bibliothek Nuxt.js sowie die Skriptsprache TypeScript.
Zur Zeit unterstützt die opsi-WebGUI alle grundlegenden Funktionen, wie etwa das Anzeigen von Servern, Clients und Produkten. Die Schnittstelle erlaubt darüber hinaus Zugriff auf Clientstatistiken, Logfiles und die Konfiguration. Admins können Clients hinzufügen und entfernen sowie einen Reboot die vorhandenen Clients veranlassen. Die Oberfläche kann mit mehreren Depots umgehen, unterstützt Benutzerrollen und integriert das opsi-Handbuch.
Die webbasierte Oberfläche wird kontinuierlich weiterentwickelt und es kommen regelmäßig neue Features hinzu. Zukünftige Versionen sollen das Ändern von Hostdaten sowie das Anzeigen und Bearbeiten der opsi-Server-Konfiguration erlauben. Die Entwickler planen ebenfalls ein Dashboard und die Integration der Lizenzmanagement-Erweiterung.
Nützliche Erweiterungen
Alle Kernkomponenten von opsi sind wie erwähnt Open Source und kostenfrei. Darüber hinaus bietet der Hersteller einige kostenpflichtige Erweiterungen [4] an, die per Einmalzahlung oder als Subskription erhältlich sind. Unter diesen Modulen finden sich auch die opsi-Clientpakete für Linux und macOS. Der "opsi-linux-client-agent" ist für viele aktuelle Linux-Dis- tributionen erhältlich, unterstützt die automatische Installation des Betriebssystems, die Inventarisierung sowie die automatisierte Installation und Konfiguration von Software. Der "opsi-mac-client-agent" kann sich um die unbeaufsichtigte Installation von APP-Verzeichnissen, um DMG-, PKG- und ZIP-Dateien kümmern, beinhaltet eine Patch- und Update-Verwaltung und inventarisiert Hard- und Software.
Auch die Unterstützung für UEFI/Secureboot ist als Erweiterung erhältlich. Sie ermöglicht die automatisierte Betriebssysteminstallation per Netboot im Secure-Boot-Kontext und kann mit GPT-Partitionstabellen umgehen. Der Directory Connector synchronisiert Clientdaten zwischen dem opsi-Backend und einem LDAP-fähigen Verzeichnisdienst. Zusätzlich kann der Verzeichnisdienst der Benutzerauthentifizierung dienen. Die Erweiterung setzt im Hintergrund auf LDAP – daher ist es egal, ob es sich um eine Active-Directory- oder Samba-4-Domäne handelt.
Die schon erwähnte Lizenzmanagement-Erweiterung macht es möglich, Softwarelizenzen auf opsi-Clients an zentraler Stelle zu verwalten. Derzeit ist das nur über die Java-Anwendung opsi-configed möglich, das Feature soll aber künftig auch in der WebGUI verfügbar sein. Die Erweiterung vereinfacht die automatische Bereitstellung, Zuteilung und Reservierung der Lizenzschlüssel. Auch eine manuelle Bearbeitung der Zuordnung für Lizenzen, die nicht mit opsi verteilt werden, ist möglich. Die Entwickler haben zudem eine Reportfunktion implementiert, die die Lizenzzuteilungen mit den laut Softwareinventarisierung festgestellten Installationen abgleicht.
Fazit
Dass ein Clientmanagement-System die Wartung und Administration in großen, verteilten Umgebungen erleichtert, Kosten und Zeit erspart, das ist unbestritten – so auch opsi. Seit mehr als 20 Jahren verteilt es zuverlässig Software, installiert und aktualisiert Betriebssysteme und unterstützt bei der Inventarisierung. Dass die Entwickler bereit sind, alte Zöpfe abzuschneiden, zeigt die moderne Managementoberfläche für den Webbrowser.