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. .. code-block:: shell $ opus 'uwiw-21714.wiwi.uni-bielefeld.de' install firefox Wie genau opus eingesetzt werden kann, wird im Abschnitt :ref:`Erste Schritte ` beschrieben. .. toctree:: :hidden: :maxdepth: 2 usage design download Installation ------------ Für die Verwendung von opus ist eine Python3_-Installation erforderlich. Die Installation einer Version geschieht mit `pip`: .. code-block:: shell $ pip install opus-.tar.gz [--user] .. _Python3: https://www.python.org/ Entwicklung ------------ Für die Entwicklung von opus kommt poetry_ zum Einsatz, das alle benötigten Packages einrichtet. Die Versionsverwaltung geschieht mit Fossil_: .. code-block:: shell $ pip install poetry $ fossil clone $ cd opus $ poetry install Das Repository ist geschlossen, aber Quellcode und Installationspakete sind auf der Homepage_ zu finden. .. _Homepage: https://comet.wiwi.uni-bielefeld.de/docs/software/opus/download.html .. _poetry: https://python-poetry.org/ .. _Fossil: https://fossil-scm.org/ 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. .. _Sphinx: https://www.sphinx-doc.org/ Tests ----- .. code-block:: shell $ 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. Indices und Tabellen ==================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`