Salve, buonasera.
Ecco il mio problema: sto creando un'interfaccia web personalizzata per WAPT. Questa interfaccia è destinata ai formatori di un centro di formazione e vorrei consentire loro di accedere a un menu che mostri le aule che gestiscono. Questo menu dovrebbe fornire informazioni su ciascuna aula, nonché su tutti i computer disponibili in essa.
Il problema è che, in mancanza di documentazione, ho difficoltà a capire come funziona l'API e vorrei sapere se è possibile assegnare pacchetti a un gruppo tramite l'API. E se sì, come? È possibile fare lo stesso per i singoli computer?
Versione di WAPT: 1.5
Sistema operativo server: CentOS 7
Sistema operativo client: Windows 7
API Wapt per interfaccia web
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
-
Calvibaldo
- Messaggi: 13
- Registrazione: 20 maggio 2019 - 16:16
- JEANTET Joey, studente di sviluppo
Ciao,
l'API WAPT comunica in formato JSON e ti permette di recuperare le stesse informazioni della console.
Ecco alcuni esempi:
https://admin:password@srvwapt.mydomain ... imit=10000
https://admin:password@srvwapt.mydomain ... /v1/groups
https://admin:password@srvwapt.mydomain ... imit=10000
Con l'API puoi recuperare informazioni, caricare un pacchetto, eliminare un pacchetto, avviare comandi Wake-on-LAN, ecc.
Tuttavia, non puoi creare pacchetti con l'API e, quindi, per rispondere alla tua domanda, non puoi assegnare pacchetti a un gruppo o a un computer utilizzando l'API.
Attualmente, quando assegni pacchetti a un gruppo o a un computer, la console crea il pacchetto localmente sulla macchina e poi lo invia al server WAPT con una richiesta POST:
https://admin:password@srvwapt.mydomain ... d_packages.
Questo approccio è stato scelto per evitare che il repository WAPT diventasse una risorsa sensibile.
Infatti, il server WAPT non possiede la chiave privata; funge solo da intermediario. Solo il detentore della chiave privata può eseguire operazioni sulle workstation.
l'API WAPT comunica in formato JSON e ti permette di recuperare le stesse informazioni della console.
Ecco alcuni esempi:
https://admin:password@srvwapt.mydomain ... imit=10000
https://admin:password@srvwapt.mydomain ... /v1/groups
https://admin:password@srvwapt.mydomain ... imit=10000
Con l'API puoi recuperare informazioni, caricare un pacchetto, eliminare un pacchetto, avviare comandi Wake-on-LAN, ecc.
Tuttavia, non puoi creare pacchetti con l'API e, quindi, per rispondere alla tua domanda, non puoi assegnare pacchetti a un gruppo o a un computer utilizzando l'API.
Attualmente, quando assegni pacchetti a un gruppo o a un computer, la console crea il pacchetto localmente sulla macchina e poi lo invia al server WAPT con una richiesta POST:
https://admin:password@srvwapt.mydomain ... d_packages.
Questo approccio è stato scelto per evitare che il repository WAPT diventasse una risorsa sensibile.
Infatti, il server WAPT non possiede la chiave privata; funge solo da intermediario. Solo il detentore della chiave privata può eseguire operazioni sulle workstation.
-
Calvibaldo
- Messaggi: 13
- Registrazione: 20 maggio 2019 - 16:16
Ok, grazie per la risposta rapida, dovrei riuscire a farcela, grazie!
- JEANTET Joey, studente di sviluppo
-
Calvibaldo
- Messaggi: 13
- Registrazione: 20 maggio 2019 - 16:16
Ciao di nuovo, il mio problema persiste. Ho pensato di modificare direttamente il database con PHP o di eseguire comandi Linux dall'interno. Il problema è che le modifiche al database a quanto pare non vengono applicate lato client. E non riesco a trovare alcun comando lato server. C'è una possibile soluzione? Potrei usare uno script già presente sul server? O una procedura?
- JEANTET Joey, studente di sviluppo
Come ho già detto, non è nel database, non c'è bisogno di modificarlo! ...
Si tratta di file flat situati in /var/www/wapt/
https://doc.ad.tranquil.it/fr/doc/wapt- ... repository
Si tratta di file flat situati in /var/www/wapt/
https://doc.ad.tranquil.it/fr/doc/wapt- ... repository
-
Calvibaldo
- Messaggi: 13
- Registrazione: 20 maggio 2019 - 16:16
Ho capito il concetto, ma il mio problema è:
Esiste un comando server che consente di aggiungere un pacchetto a un utente per l'installazione?
Per esempio :
wapt-add-usrpackage sta5803693 test-java8
e quindi ottenerlo qui Questa funzione verrebbe utilizzata su un pannello web con un sistema utente
Scusate se ho fatto così tante domande strane
Esiste un comando server che consente di aggiungere un pacchetto a un utente per l'installazione?
Per esempio :
wapt-add-usrpackage sta5803693 test-java8
e quindi ottenerlo qui Questa funzione verrebbe utilizzata su un pannello web con un sistema utente
Scusate se ho fatto così tante domande strane
- JEANTET Joey, studente di sviluppo
Ecco un codice di esempio gratuito:
Ovviamente sconsiglio questa tecnica poiché richiede che la chiave sia sul server...
Codice: Seleziona tutto
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)
Codice: Seleziona tutto
sudo -u wapt PYTHONPATH=/opt/wapt PYTHONHOME=/opt/wapt /opt/wapt/bin/python /opt/wapt/test.py
Ovviamente sconsiglio questa tecnica poiché richiede che la chiave sia sul server...
-
Calvibaldo
- Messaggi: 13
- Registrazione: 20 maggio 2019 - 16:16
Grazie per il codice gratuito, è molto utile!
Se riesco a finirlo in tempo, lo pubblicherò da qualche parte sul forum come open source.
Buona continuazione di giornata!
Se riesco a finirlo in tempo, lo pubblicherò da qualche parte sul forum come open source.
Buona continuazione di giornata!
- JEANTET Joey, studente di sviluppo
-
Calvibaldo
- Messaggi: 13
- Registrazione: 20 maggio 2019 - 16:16
Ciao, ciao! Sono di nuovo io. Ho finito il pannello web che intendevo creare (è disponibile sul forum), ma ho un problema con lo script Python.
nonostante l'opzione (private_key_password=passwordkey) in sign_package() lo script chiede sistematicamente la password. che mette a repentaglio tutto.
Ho dato un'occhiata a waptpackage.py per trovare il metodo e ho notato che password_callback=passwordkey non funziona.
Mi è sfuggito qualcosa? (Il codice Python è lo stesso di cui sopra.).
Buona giornata!
nonostante l'opzione (private_key_password=passwordkey) in sign_package() lo script chiede sistematicamente la password. che mette a repentaglio tutto.
Ho dato un'occhiata a waptpackage.py per trovare il metodo e ho notato che password_callback=passwordkey non funziona.
Mi è sfuggito qualcosa? (Il codice Python è lo stesso di cui sopra.).
Buona giornata!
- JEANTET Joey, studente di sviluppo
Ammetto di non aver provato a impostare una password per la chiave.
Dovrò testarla più a fondo; potrebbe esserci qualche problema.
Dovrò testarla più a fondo; potrebbe esserci qualche problema.
