Wapt-API für Webschnittstelle

Fragen zum WAPT-Server / Anfragen und Hilfe im Zusammenhang mit dem WAPT-Server
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Calvibald
Nachrichten: 13
Anmeldung: 20. Mai 2019 - 16:16 Uhr

5. Juni 2019 - 09:39 Uhr

Hallo, guten Abend, ich bin zurück, nachdem ich mir die wenigen Haare ausgerissen habe, die mir noch geblieben sind.
Ich habe Neuigkeiten.
Ich habe es endlich geschafft, den Schlüssel ohne Passwort zu entschlüsseln; es ist zwar nicht besonders sicher, aber es dient nur der Demonstration. Deshalb habe ich meinen PHP-Code entsprechend angepasst und die folgende Zeile hinzugefügt:
sudo -u wapt /opt/wapt/bin/python /opt/wapt/testarg.py 0019ECDE-E109-DE11-AEAF-0025111B87F7add entfernen
(Befehl, den ich erstellt habe, um alles zu automatisieren)
Das Problem ist, dass der Befehl nichts zurückgibt und nicht funktioniert. Deshalb habe ich die Initiative ergriffen und festgestellt, dass nginx aus irgendeinem Grund, egal welche Rechte ich ihm gewähre, kein sudo ausführen kann.
Die von mir verwendete Lösung bestand darin, den Benutzer in php-fpm mithilfe von wapt zu modifizieren.
Wenn ich den Befehl `whoami` auf das PHP-Skript anwende, erhalte ich `wapt` zurück, ich verwende also den richtigen Benutzer. Ich habe meinen Befehl außerdem wie folgt angepasst: ..
/opt/wapt/bin/python /opt/wapt/testarg.py 0019ECDE-E109-DE11-AEAF-0025111B87F7add entfernen
da sudo angeblich unnötig ist.
Und überraschenderweise funktioniert es immer noch nicht.
Deshalb habe ich die Datei /etc/passwd so geändert, dass die Verbindung mit dem Benutzer wapt ermöglicht wird, damit ich mich verbinden und den Befehl direkt in der Konsole testen kann.
Und überraschenderweise funktioniert es!
Daher nahm ich an, dass irgendetwas in Python PHP blockierte.
Deshalb habe ich jeder Zeile meines Codes print-Anweisungen hinzugefügt:

Code: Alle auswählen

from waptpackage import PackageEntry,WaptLocalRepo
from waptcrypto import SSLCABundle,SSLPrivateKey,SSLCertificate
import sys
arg=""
#Configuration
certpub="/opt/wapt/wapt.crt"
privatekey="/opt/wapt/wapt.pem"

if len(sys.argv)>2:
        for i in sys.argv:
                if not i==sys.argv[0]:
                        arg=arg+i+" "
        arg=arg.split("add")
        print("1")
        option=arg[1].split("remove")
        print("2")
        uuid_machine=arg[0]
        print("3")
        adddepend=option[0].split(" ")
        print("4")
        removedepend=option[1].split(" ")
        print("5")
        adddepend.remove("")
        print("6")
        removedepend.remove("")
        print("7")
        adddepend.remove("")
        print("8")
        removedepend.remove("")
        print("9")
        ca_bundle = SSLCABundle()
        print("10")
        signers_bundle = SSLCABundle()
        print("11")
        signers_bundle.add_certificates_from_pem(pem_filename=certpub)
        print("12")
        key = SSLPrivateKey(privatekey)
        print("13")
        pe = PackageEntry(waptfile = "/var/www/html/wapt-host/%s.wapt" % uuid_machine)
        print("14")
        depends = pe.depends.split(',')
        print("15")
        if len(adddepend)>0:
                print("16")
                for dep in adddepend:
                         if not dep in depends:
                                depends.append(dep)

        if not len(removedepend)<=0:
                print("17")
                for dep in removedepend:
                        if dep in depends:
                                depends.remove(dep)
        print("18")
        pe.depends = ','.join(depends)
        print("19")
        pe.inc_build()
        print("20")
        pe.sign_package(private_key=key,certificate = signers_bundle.certificates())
        print("21")
        print("Modification reussite")
else:
        print("Erreur pas assez d arguments ont ete saisis")
Und PHP gibt Folgendes zurück:
/opt/wapt/bin/python /opt/wapt/testarg.py 0019ECDE-E109-DE11-AEAF-0025111B87F7add entfernen1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 18 19 20
Das heißt, es steckt hier fest:

Code: Alle auswählen

pe.sign_package(private_key=key,certificate = signers_bundle.certificates())
Hat jemand eine Idee, warum PHP hier für WAPT-Nutzer blockiert?



System: CentOS 7
Wapt-Version: 1.7.4
PHP-Version: 7.2.19
- JEANTET Joey, Entwicklungsstudent
Calvibald
Nachrichten: 13
Anmeldung: 20. Mai 2019 - 16:16 Uhr

11. Juni 2019 – 15:10 Uhr

Hallo! Ich habe mein Problem gelöst:
1) SELinux blockiert PHP
2) Ich habe die Skriptausführungsmethode geändert, jetzt funktioniert es. Weitere Informationen dazu finden Sie hier: (https://github.com/jojojojojota/waptwebpanel)

Aber ich stoße auf ein Problem.
Auf meiner Website (auf der Seite pc.php) verwende ich die API, um die auf einem Rechner installierten bzw. nicht installierten Pakete anzuzeigen (/api/v1/hosts)
Ich stoße jedoch auf ein Problem: Manchmal aktualisiert sich die API nicht, wie in diesem Fall:
waptbug.PNG
waptbug.PNG (56,19 KB) 3875 Mal angesehen
Nach 25 Minuten hat sich die API immer noch nicht geändert und zeigt 3 abhängige Pakete an, während auf dem Rechner 5 vorhanden sind.
Bitteschön.
Ich wünsche Ihnen noch einen schönen restlichen Tag
- JEANTET Joey, Entwicklungsstudent
Benutzeravatar
Sfonteneau
WAPT-Experte
Nachrichten: 2322
Registriert: 10. Juli 2014 - 23:52 Uhr
Kontakt:

11. Juni 2019 - 17:08 Uhr

Beim Erstellen eines Maschinenpakets sind Sie für das Füllen der Abhängigkeitstabelle verantwortlich
Gesperrt