opus - OPsi USable¶
opus ist ein alternativer Client für die Verwaltung von Rechnern mit opsi. Die Bedienung orientiert sich an Saltstack. Ein Beispiel: Installation von Firefox auf einen Rechner.
$ opus 'uwiw-21714.wiwi.uni-bielefeld.de' install firefox
Wie genau opus eingesetzt werden kann, wird im Abschnitt Erste Schritte beschrieben.
Installation¶
Für die Verwendung von opus ist eine Python3-Installation erforderlich. Die Installation einer Version geschieht mit pip:
$ pip install opus-<version>.tar.gz [--user]
Entwicklung¶
Für die Entwicklung von opus kommt poetry zum Einsatz, das alle benötigten Packages einrichtet. Die Versionsverwaltung geschieht mit Fossil:
$ pip install poetry
$ fossil clone <Repository>
$ cd opus
$ poetry install
Das Repository ist geschlossen, aber Quellcode und Installationspakete sind auf der Homepage zu finden.
Dokumentation¶
Die Dokumentation nutzt das Sphinx-Paket, das poetry mit poetry install –with dev (Entwickler-Moduls) automatisch installiert. Mit poetry shell && make docs wird eine HTML-Dokumentation im Verzeichnis docs/_build/html generiert.
Tests¶
$ make tests
Die Tests erfordern Zugriff auf einen laufenden opsi-Server.
Hintergründe zur Entwicklung¶
Warum wurde opus entwickelt, wenn es doch das Java-Frontend gibt?
Eines der wichtigen Argumente für die Entwicklung ist Unabhängigkeit von Java; Oracles Firmenpolitik in Bezug auf Java ist schwierig. Das Frontend ist zudem schwergewichtig und nicht immer problemlos zu installieren. Gerade für Aktionen, die sehr viele Clients betreffen, ist es schlichtweg nicht geeignet und einen SSH-Zugriff samt kompliziertem Aufruf von opsi-admin aufwändig.
Das Ziel war eine einfachere Schnittstelle mit Zugriff ohne vorherige SSH-Verbindung zum opsi-Server, die sich ähnlich bedienen lässt wie Saltstack.
opsi bietet eine JSON RPC-API an, die auch von den opsi-eigenen Werkzeugen für die Kommunikation mit den opsi-Diensten genutzt wird. opus nutzt diese Schnittstelle mit Hilfe der opsi-eigenen Python-Pakete.
Zukünftig wird uib mit opsi-cli ein ähnlich angelegtes Werkzeug anbieten.