Bonjour bonsoir,
Voila mon problème, je suis actuellement entrain de créer une interface web personnalisé pour le WAPT. Cette interface étant destiné à des formateurs dans un centre de formation je souhaite permettre au formateurs d’accéder à un menu avec affiché les salles qu'il gère. ce menu amenant vers les info de la salle ainsi que tous les ordinateurs disponible dans cette salle.
Mon problème se présente ici, faute de documentation j'ai du mal a comprendre le fonctionnement de l'api et je voulais savoir s'il était possible depuis l'api d'attribuer des paquet à un groupe. Et si cela est possible comment ? est-il possible de faire la même chose pour les ordinateurs?
Version de WAPT : 1.5
OS serveur : CentOS 7
OS client : Windows 7
API Wapt pour interface web
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
- sfonteneau
- Expert WAPT
- Messages : 1787
- Inscription : 10 juil. 2014 - 23:52
- Contact :
Bonjour
L'api de wapt discute en json et vous permet de récupérer les même information que la console:
Quelques exemple:
https://admin:password@srvwapt.mondomai ... imit=10000
https://admin:password@srvwapt.mondomai ... /v1/groups
https://admin:password@srvwapt.mondomai ... imit=10000
Avec l'api vous pouvez récupérer des information, uploader un paquet, supprimer un paquet, lancer des wakeonlan...
Mais vous ne pouvez pas créer de paquet avec l'api et donc pour répondre a votre question vous ne pouvez pas attribuer des paquet à un groupe ou un ordinateur avec l'api.
Aujourd'hui, lorsque vous attribuez des paquet à un groupe ou un ordinateur, c'est la console qui construit le paquet localement sur le poste puis l'envoie au serveur wapt avec un requet POST
https://admin:password@srvwapt.mondomai ... d_packages
Ce fonctionnement a été choisi pour éviter que le dépôt wapt ne deviennent un bien sensible.
En effet le serveur wapt ne possède pas la clé privé, il ne sert que de relai. Seul le détenteur de la clé privé peut effectuer des action sur les postes.
L'api de wapt discute en json et vous permet de récupérer les même information que la console:
Quelques exemple:
https://admin:password@srvwapt.mondomai ... imit=10000
https://admin:password@srvwapt.mondomai ... /v1/groups
https://admin:password@srvwapt.mondomai ... imit=10000
Avec l'api vous pouvez récupérer des information, uploader un paquet, supprimer un paquet, lancer des wakeonlan...
Mais vous ne pouvez pas créer de paquet avec l'api et donc pour répondre a votre question vous ne pouvez pas attribuer des paquet à un groupe ou un ordinateur avec l'api.
Aujourd'hui, lorsque vous attribuez des paquet à un groupe ou un ordinateur, c'est la console qui construit le paquet localement sur le poste puis l'envoie au serveur wapt avec un requet POST
https://admin:password@srvwapt.mondomai ... d_packages
Ce fonctionnement a été choisi pour éviter que le dépôt wapt ne deviennent un bien sensible.
En effet le serveur wapt ne possède pas la clé privé, il ne sert que de relai. Seul le détenteur de la clé privé peut effectuer des action sur les postes.
Re bonjour, mon problème est finalement toujours d'actualité. j'ai pensé directement modifier la bdd avec du php ou executer des commande linux depuis celui si. Le problème est que visiblement les changement dans la bdd ne sont pas pris en compte coté client. Et que je ne trouve pas de commande coté serveur. y a t-il une solution envisageable ? utiliser un script déjà présent sur le serveur ? ou une procédure ?
- JEANTET Joey étudiant en développement
- sfonteneau
- Expert WAPT
- Messages : 1787
- Inscription : 10 juil. 2014 - 23:52
- Contact :
Comme je l'ai déjà dis ce n'est n'est pas dans la BDD, inutile de modifer ! ...
Ce sont des fichier plat présent dans /var/www/wapt/
https://doc.ad.tranquil.it/fr/doc/wapt- ... positories
Ce sont des fichier plat présent dans /var/www/wapt/
https://doc.ad.tranquil.it/fr/doc/wapt- ... positories
J'avais bien saisi ce concept mon problème est :
Existe t-il une commande serveur qui permet d'ajouter un paquet à un utilisateur pour une installation
par exemple :
wapt-add-usrpackage sta5803693 test-java8
et ainsi l'obtenir ici Cette fonction serait utilisé sur un panel web avec un système d'utilisateur
Désoler de poser autant de questions farfelue
Existe t-il une commande serveur qui permet d'ajouter un paquet à un utilisateur pour une installation
par exemple :
wapt-add-usrpackage sta5803693 test-java8
et ainsi l'obtenir ici Cette fonction serait utilisé sur un panel web avec un système d'utilisateur
Désoler de poser autant de questions farfelue
- JEANTET Joey étudiant en développement
- sfonteneau
- Expert WAPT
- Messages : 1787
- Inscription : 10 juil. 2014 - 23:52
- Contact :
Un code d'exemple c'est cadeau:
Je déconseille bien entendue cette technique puisque cela nécessite que la clé soit sur le serveur...
Code : Tout sélectionner
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 : Tout sélectionner
sudo -u wapt PYTHONPATH=/opt/wapt PYTHONHOME=/opt/wapt /opt/wapt/bin/python /opt/wapt/test.py
Je déconseille bien entendue cette technique puisque cela nécessite que la clé soit sur le serveur...
Bonjour, bonjour ! c'est encore moi. J'ai fini le panel web que j'avais l'intention de faire (il est dispo sur le forum) mais j'ai un soucis avec le script python.
malgré l'option (private_key_password=passwordkey) dans sign_package() le script demande systématiquement le mot de passe. ce qui compromet tout.
J'ai jeter un oeil au waptpackage.py pour trouver la méthode et j'ai pu remarquer password_callback=passwordkey qui ne fonctionne pas non plus.
J'ai raté quelque chose ? (le code python est le même que au dessus).
Bonne fin de journée !
malgré l'option (private_key_password=passwordkey) dans sign_package() le script demande systématiquement le mot de passe. ce qui compromet tout.
J'ai jeter un oeil au waptpackage.py pour trouver la méthode et j'ai pu remarquer password_callback=passwordkey qui ne fonctionne pas non plus.
J'ai raté quelque chose ? (le code python est le même que au dessus).
Bonne fin de journée !
- JEANTET Joey étudiant en développement
- sfonteneau
- Expert WAPT
- Messages : 1787
- Inscription : 10 juil. 2014 - 23:52
- Contact :
J'avoue je n'ai pas tenté avec un mot de passe sur la clé.
Il faudra que je test plus en profondeur il y a peut être un soucis.
Il faudra que je test plus en profondeur il y a peut être un soucis.