Werkstattbericht neue opsi-Webgui

tb-killa
Beiträge: 68
Registriert: 22 Okt 2017, 16:59

Werkstattbericht neue opsi-Webgui

Beitragvon tb-killa » 12 Okt 2020, 11:42

Durch Zufall sind wir auf den Beitrag "opsi Conf 2020: Werkstattbericht neue opsi-Webgui" (https://www.youtube.com/watch?v=X5xO2uD1KQo) gestoßen, erstmal ein großes Lob auch an Fr. Anna Sucher für den tollen Vortrag.

Bezüglich dieses neuen opsi-Webgui haben wir ein paar Fragen und Ideen:

# Allgemeine Fragen:
- Verfügbarkeit des opsi-Webgui als Test ?
- Verfügbarkeit des opsi-Webgui als First Release Official ?
- Kosten des opsi-Webgui ?
- Bereitstellung des Code per github Repo ?

# Technische Fragen:
- Nutzung des Django-Framework:

Wir sind ein großer Freund von Django und können diesen Weg nur befürworten.
Im Video wird von einem anderen User zwischen opsi-python / Django und der Kommunikation mit opsi gesprochen, können wir innerhalb von Django auch alternative Auth-Middleware nutzen wie z.B. ldap zwecks Rechteverwaltung innerhalb von opsi-Webgui ?

Wird es die Möglichkeit geben, eigene Django Apps integrieren zu können bzw. gibt es Ideen für ein mögliches Plugin-Konzept ?

#Rückfrage der technischen Natur hinter dem ganzen:
- Backend-Querys:
Wäre es nicht geschickter, opsi für die Konfiguration als Mysql Backend(oder ggf. zum Beispiel postgresql) standardmäßig freizugeben und den Weg per Django und Models über z.B. inspectdb und reines lesen zu nutzen ?
Vorteil wäre hier, es gibt einen schnellen Unterbau, die Datenbankfelder sind bekannt und da nur lesend gearbeitet wird, dürfte die Performance signifikant besser sein als z.B. per Django task queue oder ähnlichem die Daten per json rpc oder ähnlichem abzuholen.

Wir freuen uns auf Rückmeldung und Diskussionen, vor allem aber auch auf erste Livetests :)

Benutzeravatar
sucher
uib-Team
Beiträge: 1
Registriert: 28 Jul 2014, 10:44

Re: Werkstattbericht neue opsi-Webgui

Beitragvon sucher » 21 Okt 2020, 12:39

Hi,

zunächst vielen Dank für das Lob :wink:

Wir sind fleißig an der Webgui am arbeiten. Allerdings ist uns die Qualität der Anwendung wichtiger als ein schnelles Release.
- Deswegen kann momentan keine Aussage zur Verfügbarkeit getroffen werden.
- Nach derzeitigem Stand soll die Webgui kostenfrei bereitgestellt werden
- und, wie der Code jeder unserer Anwendungen soll auch der der Webgui auf github verfügbar sein.

Nun zu den Technischen Fragen:
Die Webgui ist abgekoppelt vom opsi-backend. Das heißt, sie kann auf einer anderen Maschine (kein opsiserver) gehostet werden. Somit ist Django lediglich ein "ZwischenBackend", welches mit dem opsiserver über JSONRPC kommuniziert. Dafür ist es notwendig, dass der Benutzer sich beim opsi-server erfolgreich authentifiziert. Der derzeitige Stand ist, dass der Benutzer mit dem man sich anmeldet nicht der ist, der die Anfragen an das Backend sendet. Allerdings müssen beide Benutzer opsi-admin Rechte besitzen. Für die Rechteverwaltung innerhalb von opsi werden dann die user-roles verwendet (Eingeschränkter Zugriff auf Depots /Clientgruppen). Für die Authentifizierung über andere Provider, wie ldap, soll dann der Service zuständig sein, damit nicht alles doppelt/dreifach/.. implementiert werden muss.

Bezüglich der Datenbank: Das ist ein interessante Vorgehensweise. Allerdings sehe ich da Probleme bezüglich der Verwendung der python-opsi-Methoden. Momentan wird eine python-opsi Instanz benötigt, über die die Kommunikation zum opsiserver stattfindet (Verwendung von host_getObjects etc.. innerhalb von Django). Zusätzlich liefern (extra für die webgui) neue Backend Methoden der Gui lediglich die Daten, die auch benötigt werden. Für den Fall, dass man zwei (im besten Fall immer identische) Datenbanken hat, also "Djangodb" und "opsiserverdb" müsste man praktisch einen python-opsi Wrapper bauen, der bestimmt, welche Methoden auf die lokalen und welche auf die "echten" Daten zugreift (lesen / schreiben). Und ohne python-opsi würde man die gleichen Methoden ggf erneut implementieren müssen. Außerdem bin ich mir nicht sicher, ob sich die Performance-Einsparung durch die stetige Synchronisation der Datenbanken wieder ausgeglichen werden würde.

Bezüglich der Django Apps ist derzeit kein Plugin System geplant. Das Problem ist da eher, dass wir Django wirklich nur als Zwischenbackend verwenden um das echte Backend nach Daten zu Fragen (Die Django-Templates verwenden wir nicht) . Denkbar wäre auch die Konstellation, dass Django vollständig entfällt und das Frontend direkt das Backend nach Daten fragt. Frontend-seitig und eigentlich komplett getrennt von Django verwenden wir VueJS. Hier findet die meiste Logik/Arbeit/.. statt. Aber ich behalte mir die Idee im Hinterkopf, dass beispielsweise eigene Seiten/Komponenten o.ä. "customiziert" bzw. selbst entwickelt werden können.

Ich hoffe das beantwortet jetzt alle Fragen :D

Benutzeravatar
tobias
Beiträge: 1285
Registriert: 20 Aug 2008, 12:36
Wohnort: Braunschweig
Kontaktdaten:

Re: Werkstattbericht neue opsi-Webgui

Beitragvon tobias » 23 Okt 2020, 20:57

Wie wärs mit der Veröffentlichung von Nightlies :)

Gibt doch eigentlich nichts besseres in der frühen Entwicklungsphase als direktes Feedback derjenigen, die später damit täglich arbeiten.

Natürlich ohne Garantie, Support und sonst was
Veröffentliche deine WINST Scripte im OPSI Wiki und leiste so einen wertvollen Beitrag für die Community !!!
https://forum.opsi.org/wiki/