Seite 1 von 2
Wapt-API für Webschnittstelle
Veröffentlicht: 20. Mai 2019 – 16:26 Uhr
von Calvibald
Guten Abend.
Ich habe folgendes Problem: Ich entwickle gerade eine benutzerdefinierte Weboberfläche für WAPT. Diese Oberfläche ist für Trainer in einem Schulungszentrum gedacht und soll ihnen Zugriff auf ein Menü ermöglichen, in dem die von ihnen verwalteten Räume angezeigt werden. Dieses Menü soll Informationen zu jedem Raum sowie zu allen darin verfügbaren Computern enthalten.
Da die Dokumentation unzureichend ist, verstehe ich die Funktionsweise der API nicht und möchte wissen, ob es möglich ist, Pakete über die API einer Gruppe zuzuweisen. Wenn ja, wie? Ist dies auch für einzelne Computer möglich?
WAPT-Version: 1.5,
Server-Betriebssystem: CentOS 7,
Client-Betriebssystem: Windows 7
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 21. Mai 2019 - 08:50 Uhr
von Sfonteneau
Hallo,
die WAPT-API kommuniziert über JSON und ermöglicht den Abruf derselben Informationen wie die Konsole.
Hier einige Beispiele:
https://admin:password@srvwapt.mydomain ... imit=10000
https://admin:password@srvwapt.mydomain ... /v1/groups
https://admin:password@srvwapt.mydomain ... imit=10000
Mit der API können Sie Informationen abrufen, Pakete hochladen, löschen, Wake-on-LAN-Befehle ausführen usw.
Allerdings können Sie mit der API keine Pakete erstellen. Daher können Sie, um Ihre Frage zu beantworten, keine Pakete über die API einer Gruppe oder einem Computer zuweisen.
Wenn Sie derzeit Pakete einer Gruppe oder einem Computer zuweisen, erstellt die Konsole das Paket lokal auf dem jeweiligen Rechner und sendet es anschließend per POST-Anfrage an den WAPT-Server:
https://admin:password@srvwapt.mydomain ... d_packages.
Dieses Vorgehen wurde gewählt, um zu verhindern, dass das WAPT-Repository zu einem sensiblen Datenträger wird.
Der WAPT-Server besitzt tatsächlich nicht den privaten Schlüssel; er fungiert lediglich als Vermittler. Nur der Inhaber des privaten Schlüssels kann Aktionen auf den Arbeitsstationen durchführen.
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 21. Mai 2019 - 09:01 Uhr
von Calvibald
Okay, danke für die schnelle Antwort, damit sollte ich zurechtkommen, danke!
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 21. Mai 2019 - 11:27 Uhr
von Calvibald
Hallo nochmal, mein Problem besteht weiterhin. Ich habe überlegt, die Datenbank direkt mit PHP zu bearbeiten oder Linux-Befehle darin auszuführen. Das Problem ist, dass die Änderungen an der Datenbank anscheinend nicht clientseitig übernommen werden. Und ich finde keine serverseitigen Befehle. Gibt es eine mögliche Lösung? Könnte ich ein bereits auf dem Server vorhandenes Skript oder eine Prozedur verwenden?
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 21. Mai 2019 - 11:58 Uhr
von Sfonteneau
Wie bereits erwähnt, befindet es sich nicht in der Datenbank, daher ist keine Änderung erforderlich! ...
Es handelt sich um einfache Dateien im Verzeichnis /var/www/wapt/
https://doc.ad.tranquil.it/fr/doc/wapt- ... positories
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 21. Mai 2019 - 12:09 Uhr
von Calvibald
Ich habe das Konzept verstanden, aber mein Problem ist:
Gibt es einen Serverbefehl, mit dem man einem Benutzer ein Paket zur Installation hinzufügen kann?
Zum Beispiel :
wapt-add-usrpackage sta5803693 test-java8
und erhalten Sie es somit hier

- Capture.PNG (48,04 KB) 6807 Mal angesehen
Diese Funktion würde auf einem Webpanel mit einem Benutzersystem verwendet werden
Entschuldigung für die vielen seltsamen Fragen
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 22. Mai 2019 - 09:21 Uhr
von Sfonteneau
Hier ist ein kostenloser Beispielcode:
Code: Alle auswählen
from waptpackage import PackageEntry,WaptLocalRepo
from waptcrypto import SSLCABundle,SSLPrivateKey,SSLCertificate
uuid_machine = 'BEDBD700-7277-11E3-AAA8-F44D30629A99'
removedepend=["toto"]
adddepend=["test","test2"]
certpub="/root/mykey.crt"
privatekey="/root/mykey.pem"
passwordkey='password'
ca_bundle = SSLCABundle()
signers_bundle = SSLCABundle()
signers_bundle.add_certificates_from_pem(pem_filename=certpub)
key = SSLPrivateKey(privatekey)
pe = PackageEntry(waptfile = "/var/www/wapt-host/%s.wapt" % uuid_machine)
depends = pe.depends.split(',')
for dep in adddepend:
if not dep in depends:
depends.append(dep)
for dep in removedepend:
if dep in depends:
depends.remove(dep)
pe.depends = ','.join(depends)
pe.inc_build()
pe.sign_package(private_key=key,certificate = signers_bundle.certificates(),private_key_password=passwordkey)
Code: Alle auswählen
sudo -u wapt PYTHONPATH=/opt/wapt PYTHONHOME=/opt/wapt /opt/wapt/bin/python /opt/wapt/test.py
Ich rate von dieser Methode ausdrücklich ab, da sie voraussetzt, dass sich der Schlüssel auf dem Server befindet...

Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 22. Mai 2019 - 09:33 Uhr
von Calvibald
Vielen Dank für den kostenlosen Code, der ist sehr hilfreich!
Wenn ich es schaffe, den Code rechtzeitig fertigzustellen, werde ich ihn hier im Forum als Open Source veröffentlichen.
Ich wünsche Ihnen noch einen schönen Tag!
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 4. Juni 2019 - 14:51 Uhr
von Calvibald
Hallo, hallo! Ich bin's wieder. Ich habe das Webpanel fertiggestellt, das ich erstellen wollte (es ist im Forum verfügbar), aber ich habe ein Problem mit dem Python-Skript.
Trotz der Option (private_key_password=passwordkey) in sign_package() fragt das Skript systematisch nach dem Passwort.

- Capture.PNG (1,99 KB) 6685 Mal angesehen
was alles gefährdet.
Ich habe mir die Datei waptpackage.py angesehen, um die Methode zu finden, und dabei ist mir aufgefallen, dass password_callback=passwordkey ebenfalls nicht funktioniert.
Habe ich etwas übersehen? (Der Python-Code ist derselbe wie oben.).
Ich wünsche Ihnen noch einen schönen restlichen Tag!
Betreff: Wapt-API für Webschnittstelle
Veröffentlicht: 5. Juni 2019 - 09:15 Uhr
von Sfonteneau
Ich gebe zu, dass ich noch kein Passwort für den Schlüssel ausprobiert habe.
Ich muss das noch genauer testen; möglicherweise gibt es ein Problem.