Bonjour,
J'ai besoin de vos idées, lumières, conseils.
J'aimerais faire une interface pour du code bash afin de piloter des VM tournant sous Virtualbox.
Le code n'est pas très compliqué car il reprend des commandes fournies par Virtualbox et d'autres éléments de l'hôte en lui même.
Donc pour cette partie pas de soucis je gère.
Par contre là où je coince c'est pour la partie interface. Car je voudrais créer une interface afin de rendre la gestion de la chose plus facile et propre.
Autant sous Windows avec Powershell je sais créer une GUI pour mes scripts, autant sous Linux je n'ai jamais eu l'occasion de le faire.
Voici un schéma qui grosso modo reprend l'idée que j'ai en tête, bon j'espère arriver à un résultat plus sympa pour les yeux :D
Je suis ouvert à toutes suggestions.
Merci d'avance.
# quelques idées
Posté par palm123 (site web personnel) . Évalué à 4.
https://doc.ubuntu-fr.org/zenity
https://doc.ubuntu-fr.org/zenitor_3
ウィズコロナ
[^] # Re: quelques idées
Posté par ptit_poulet . Évalué à 1.
DIs moi si je me trompe mais j'ai l'impression que Zenity c'est plus pour afficher des fenêtres pendant le déroulement d'un script.
Moi c'est plus une GUI qui va permettre de lancer des scripts, donc l'inverse :D
[^] # Re: quelques idées
Posté par gouttegd . Évalué à 3.
L’idée c’est que ton script appelle Zenity pour afficher une boîte de dialogue, l’utilisateur choisit ce qu’il veut, puis Zenity rend la main à ton script et tu peux agir en fonction. Puis tu réaffiches une nouvelle fenêtre, et ainsi de suite.
[^] # Re: quelques idées
Posté par ptit_poulet . Évalué à 1.
Oui donc c'est bien ce que j'avais cru comprendre.
Par exemple avec Powershell (je parle de celui-ci même si c'est du mon de Windows car je le connais bien), je fais mon script avec à l'intérieur diverses fonctions que je viens appeler lorsque l'utilisateur utilise un bouton, une liste… dans l'interface.
Mais jamais cette interface ne disparaît pour en laisser une autre et dérouler un script du haut vers le bas.
Après peut-être que cela n'est pas possible avec un script bash. Mais je trouve dommage de devoir partir sur un autre langage car tout ce que je dois utiliser existe en commande bash.
[^] # Re: quelques idées
Posté par Nicolas Casanova . Évalué à 2.
Tu ne pourras pas faire la même chose en bash (mais je suis prêt à être contredit.)
Tu pourrais envisager du Tcl/Tk (ou un autre langage couplé avec Tk pour l'interface : Python avec TkInter, Perl avec Tk). Puis depuis ton script Perl/Python/autre tu appelles tes commandes VBox*.
# TUI?
Posté par gouttegd . Évalué à 5.
Alors, je vais répondre un peu à côté, mais moi j’envisagerais bien une TUI (Text User Interface) à base de Ncurses plutôt qu’une GUI.
À partir de code bash, c’est relativement facile à construire avec dialog.
S’il faut absolument une GUI, je ne suis pas sûr qu’un script shell soit le plus adapté, je pense que je partirais plutôt sur du Python ou assimilé. Mais tu peux quand même tenter des choses avec des programmes comme Zenity.
[^] # Re: TUI?
Posté par ptit_poulet . Évalué à 0. Dernière modification le 07 mars 2017 à 12:57.
Oui j'ai besoin d'une GUI car le but est de développer une interface pour piloter des VM et des fonctions associées. Je me serai bien contenter de l'interface de Virtualbox mais je ne peux pas y intégrer toutes les fonctions supplémentaires que je veux ajouter : gestion LVM, gestion de l'hôte (reboot, shutdown…), réseau, backup vers un serveur…
[^] # Re: TUI?
Posté par NeoX . Évalué à 3.
tu as regardes l'interface php-vbox ?
https://sourceforge.net/p/phpvirtualbox/wiki/Home/
je ne sais pas si c'est encore maintenu, mais tu y trouveras peut-etre une base,
et qui plus sera executable à distance, et dans laquelle tu pourrais rajouter tes fonctionnalités et ainsi contribuer aussi au libre.
[^] # Re: TUI?
Posté par ptit_poulet . Évalué à 0.
Oui je connais cette interface. Par contre je n'ai pas les compétences pour apporter ma pierre à l'édifice malheureusement… :(
[^] # Re: TUI?
Posté par NeoX . Évalué à 2.
si tu es pret à decouvrir comment faire une interface en "bash"
faire un ajout à une interface en PHP doit pas etre bien plus compliqué
[^] # Re: TUI?
Posté par ptit_poulet . Évalué à 0.
Faut que je commence par apprendre php et javascript. Ça fait beaucoup pour faire une simple GUI :D
Et il n'est pas prévu de faire tourner un serveur web sur le poste.
[^] # Re: TUI?
Posté par NeoX . Évalué à 3.
libvirt dispose d'un "driver" pour les machines virtualbox
et fait peut-etre deja ce que tu veux.
les outils virsh, virt-manager te permette alors de faire certaines des commandes que tu veux.
[^] # Re: TUI?
Posté par ptit_poulet . Évalué à 0.
J'ai réfléchi à ton idée et finalement je vais me lancer sur une interface web.
Alors je ne vais pas partir sur la modification de phpvirtualbox car c'est trop complexe pour mon niveau newbie développeur. Mais j'ai regarder la syntaxe html et php pour faire ce à quoi j'ai pensé et ça n'a pas l'air bien compliqué.
Donc je pense faire une page html avec derrière des scripts php qui vont appeler des scripts bash voir utiliser des librairies pour certains trucs si ça existe et si j'y arrive :D
[^] # Re: TUI?
Posté par NeoX . Évalué à 2.
php reste un langage de scripts, y a peut-etre pas besoin de faire des scripts qui appellent des scripts…
[^] # Re: TUI?
Posté par ptit_poulet . Évalué à 0.
Oui j'ai vu que je pouvais faire exécuter des commandes externes directement dans du code php avec shell_exec() par exemple.
[^] # Re: TUI?
Posté par NeoX . Évalué à 2.
attention quand meme au droit accordé à apache ou à celui qui va executer le php qui pourrait alors executer n'importe quoi et prendre le controle de ta machine
[^] # Re: TUI?
Posté par ptit_poulet . Évalué à 0.
Ça serait uniquement en local.
# tcl/tk comme interface à tes scripts ?
Posté par totof2000 . Évalué à 4. Dernière modification le 07 mars 2017 à 18:03.
https://www.tcl.tk/
https://www.tcl.tk/man/tcl8.5/tutorial/Tcl26.html
[^] # Re: tcl/tk comme interface à tes scripts ?
Posté par ptit_poulet . Évalué à 0.
@Nicolas Casanova a proposé cette solution là aussi.
J'ai jeté un œil ça m'a l'air fort intéressant.
En plus c'est multiplateforme, pour que je veux faire là maintenant ça n'a pas d'intérêt mais ça me donne des idées pour d'autres choses que j'ai en tête.
Merci ;)
# Python + pyvbox + GUI de ton choix (Tcl/Tk, Qt,...)
Posté par jihele . Évalué à 3. Dernière modification le 09 mars 2017 à 15:33.
Tu as des scripts pour manipuler les VM et tu veux une GUI.
Soit tu fais de la GUI dans les scripts (Zenity,…), soit la GUI est générée par un autre langage (Python, PHP,…) et alors ce langage appelle tes scripts ou directement les commandes shell.
Mais dans ce cas, mon conseil, plutôt que d'appeler des commandes shell depuis Python, est de chercher une bibliothèque qui fournit une API. C'est mieux pour l'intégration, la maintenance, la gestion des tests, des exceptions. En Python, par exemple, il y aurait ça (non testé) : https://pypi.python.org/pypi/pyvbox
Pour la GUI, toujours en Python, que je connais mieux, je partirais sur Qt, mais c'est affaire de goût, et c'est pas évident, il y a pas mal de subtilités (ou de choses à lire dans la docs qu'on appelle subtilités quand on tombe dedans parce qu'on a cru qu'on s'en sortirai sans lire la doc).
Je comprends bien que je suis en train de te proposer de refaire précisément la partie que tu as déjà…
Bref, tout ça pour dire, comme NeoX, peut-être pas la peine de faire des scripts qui appellent des scripts. Éviter la glu qui colle mal.
[^] # Re: Python + pyvbox + GUI de ton choix (Tcl/Tk, Qt,...)
Posté par ptit_poulet . Évalué à 0.
Merci pour les conseils ;)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.