[Debian-pan-maintainers] Debian packaging: qemu-web-desktop

Roland Mas roland.mas at gnurandal.com
Fri Apr 22 12:12:14 BST 2022


Super. Faites-moi un ping quand je pourrai faire le nouveau paquet (et 
pensez à merger mon patch ;-)

Roland.

Le 22/04/2022 à 11:39, Emmanuel FARHI a écrit :
>
> Bonjour Roland,
>
> merci pour vos conseils qui ont permis de trouver ce qui cloche. En 
> effet, le 'token' pour websockify précisait le nom de la machine, 
> alors que le VNC était lancé sur la boucle locale. Selon l'ordre de la 
> résolution de nom et la configuration du réseau, on pouvait du coup 
> tomber sur la mauvaise IP pour le serveur. Je fais immédiatement un 
> commit dans ce sens, et une release corrective.
>
> Encore merci !
>
> Emmanuel.
>
> Le 20/04/2022 à 15:11, Roland Mas a écrit :
>>
>> Bonjour,
>>
>> Je me suis peut-être mal exprimé : je n'arrive pas (encore ?) à 
>> reproduire le bug. Fonctionnement nominal, en d'autres termes « chez 
>> moi ça marche » ;-)
>>
>> Je reprends ma question sur les IP : vous dites que les IP sont à 
>> 127.0.0.1, mais est-ce que grades-01.synchrotron-soleil.fr se résout 
>> en 127.0.0.1 sur le serveur lui-même ? Ou tout du moins, est-ce que 
>> ça se résout en l'IP sur laquelle écoute le VNC ? Essayez "ss 
>> -tlpn|grep vnc" sur grades-01, puis "getent hosts 
>> grades-01.synchrotron-soleil.fr" pour savoir ce qui écoute sur quoi 
>> et vers quelle IP websockify va tenter de se connecter. (Commandes à 
>> lancer après démarrage de la VM)
>>
>> Roland.
>>
>> Le 20/04/2022 à 10:22, FARHI Emmanuel a écrit :
>>> Bonjour Roland,
>>>
>>> merci pour ces nouvelles. Le fait que vous puissiez reproduire le 
>>> bug est déjà en soi encourageant. Les processus qemu et 
>>> websockify/novnc sont bien en route et les IP (127.0.0.1 lorsque 
>>> tout tourne en local) sont bonnes il me semble.
>>> Je vais continuer également mes tests de mon coté afin d'identifier 
>>> ce qui cloche.
>>> La machine grades-01 n'est malheureusement pas accessible depuis 
>>> l'extérieur.
>>>
>>> Emmanuel.
>>>
>>> ------------------------------------------------------------------------
>>> *De: *"roland mas" <roland.mas at gnurandal.com>
>>> *À: *"FARHI Emmanuel" <emmanuel.farhi at synchrotron-soleil.fr>
>>> *Cc: *"PICCA Frederic-Emmanuel" 
>>> <frederic-emmanuel.picca at synchrotron-soleil.fr>
>>> *Envoyé: *Mardi 19 Avril 2022 20:31:30
>>> *Objet: *Re: Debian packaging: qemu-web-desktop
>>>
>>> Voilà, le paquet 22.04.17+ds1-1 est en route vers unstable, avec un 
>>> patch sur le script de téléchargement des images de VM (que je viens 
>>> de soumettre sous forme de merge request).
>>>
>>> Je l'ai installé sur un PC vierge de tout travail préalable (mon PC 
>>> habituel est en attente d'une alimentation neuve qui devrait arriver 
>>> dans la semaine, je travaille donc sur un autre en attendant). J'ai 
>>> pu tester le fonctionnement nominal, avec service_port_multiple à 0 
>>> comme à 1. J'ai déjà une info pertinente : j'ai aussi les messages 
>>> "Couldn't set uid/gid/priority, closing connection". Et " Connection 
>>> refused" autant que "Failed to connect to server", ça me semble 
>>> plutôt être un problème de lancement de processus. Est-ce que de 
>>> votre côté le qemu est bien lancé, est-ce qu'il écoute bien sur la 
>>> bonne adresse IP et le bon port ? Je n'arrive pas à résoudre 
>>> grades-01.synchrotron-soleil.fr ici, est-ce que votre DNS interne 
>>> est correct ?
>>>
>>> En tout cas, j'essaierai sur d'autres environnements pour reproduire 
>>> le bug.
>>>
>>> Roland.
>>>
>>> Le 19/04/2022 à 10:17, Roland Mas a écrit :
>>>
>>>     Bonjour,
>>>
>>>     Je m'en occupe. Je vais commencer par packager la nouvelle
>>>     version upstream, et je m'occupe de ce debug dès que c'est bon..
>>>
>>>     Roland.
>>>
>>>     Le 18/04/2022 à 13:11, FARHI Emmanuel a écrit :
>>>
>>>         Bonjour Roland,
>>>
>>>         J'ai pas mal travaillé sur le projet qemu-web-desktop. La
>>>         principale motivation a été de n'utiliser qu'un seul port de
>>>         communication pour websockify, avec des TokenFile. La
>>>         configuration par défaut utilise toujours un port noVNC
>>>         (:60xx) par connexion (et par port VNC :590x). Le nouveau
>>>         mécanisme se choisit avec l'option dans le fichier
>>>         /etc/qemu-web-desktop/config.pl
>>>
>>>           * $config{service_port_multiple} = 0;
>>>
>>>         (au lieu de 1 par défaut). Le nouveau mecanisme a un seul
>>>         port websockify est plus sur, car il ne necessite que
>>>         l'ouverture d'un port sur les réseaux d'entreprise, plutot
>>>         qu'une plage de ports que les IT n'aiment pas (a juste titre).
>>>
>>>         Avec le git upstream du projet
>>>         <https://gitlab.com/soleil-data-treatment/soleil-software-projects/remote-desktop>,
>>>         tout se passe bien au début (sudo make install, accès au
>>>         service, lancement de qemu, et websockify en mode 'daemon').
>>>         Un fichier qui fait le lien entre le Token websockify (ici
>>>         TTUHIzPJ) et le port est crée dans
>>>         /var/lib/qemu-web-desktop/snapshots/websockify-target..d/
>>>         avec la syntaxe
>>>
>>>           * TTUHIzPJ: 127.0.0.1:5901
>>>
>>>         Mais on obtient le message dans le browser noVNC '*[X]
>>>         Failed to connect to server*'.
>>>
>>>         Le log de apache montre:
>>>
>>>         # sudo tail -200 /var/log/apache2/error.log
>>>         [Mon Apr 18 12:43:40.366067 2022] [mpm_itk:warn] [pid
>>>         258231] (itkmpm: pid=258231 uid=134, gid=106)
>>>         itk_post_perdir_config(): setgid(33): Operation not permitted
>>>         [Mon Apr 18 12:43:40.366082 2022] [mpm_itk:warn] [pid
>>>         258231] Couldn't set uid/gid/priority, closing connection.
>>>
>>>         Si on lance le websockify en avance a la main, on obtient le
>>>         message suivant lorsque l'on clique sur le lien du serveur web
>>>
>>>           * https://grades-01.synchrotron-soleil.fr:6001/vnc.html?resize=scale&autoconnect=true&path=?token=TTUHIzPJ
>>>
>>>         j'ai modifié la ligne
>>>         /usr/lib/python3/dist-packages/websockify/websocketproxy.py,
>>>         lignes 121-122 afin d'afficher la cause de l'erreur:
>>>
>>>         except Exception as e:
>>>         self.log_message("Failed to connect to %s:%s: %s",
>>>         self.server.target_host, self.server.target_port, e)
>>>
>>>         puis (idem en tant qu'utilisateur courant, root ou
>>>         _qemu-web-desktop):
>>>         $ websockify --web /usr/share/novnc --token-plugin=TokenFile
>>>         --token-source=/var/lib/qemu-web-desktop/snapshots/websockify-target.d/
>>>         --cert=/etc/apache2/certificate/apache-certificate.crt
>>>         --key=/etc/apache2/certificate/apache.key 6001
>>>         WebSocket server settings:
>>>           - Listen on :6001
>>>           - Web server.. Web root: /usr/share/novnc
>>>           - SSL/TLS support
>>>           - proxying from :6001 to targets generated by TokenFile
>>>         192.168.3.225 - - [18/Apr/2022 12:26:16] 192.168.3.225:
>>>         SSL/TLS (wss://) WebSocket connection
>>>         192.168..3.225 - - [18/Apr/2022 12:26:16] 192.168.3.225:
>>>         Path: '/?token=3SmaqaOg'
>>>         192.168.3.225 - - [18/Apr/2022 12:26:16] connecting to:
>>>         grades-01.synchrotron-soleil.fr:5905
>>>         192.168.3.225 - - [18/Apr/2022 12:26:16] Failed to connect
>>>         to grades-01.synchrotron-soleil.fr:5905: *[Errno 111]
>>>         Connection refused*
>>>
>>>         Cette erreur se produit sur nos deux serveur GPU avec le
>>>         meme système Bullseye. Par contre sur mon ordi portable en
>>>         Bullseye, ca marche. Il y a donc un truc qui m'échappe, et
>>>         qui semble indiquer un problème de droits.
>>>
>>>         J'ai fait des tests à la main, qui confirment cela. Un
>>>         lancement tout a la main fonctionne (y compris en tant que
>>>         _qemu-web-desktop ou utilisateur courant):
>>>
>>>         # qemu-img create -f qcow2 /tmp/snap1.qcow2 10G
>>>         # mkdir /tmp/websockify-target.d
>>>         # FILE=/tmp/websockify-target.d/target1
>>>         # dd status=none of=${FILE} << EOF
>>>         target1: 127.0.0.1:5901
>>>         EOF
>>>         # qemu-system-x86_64 -smp 4 -name
>>>         qemu-web-desktop_TTUHIzPJ:farhie:Debian11-Bullseye.qcow2
>>>         -machine pc,accel=kvm -enable-kvm -cpu host,kvm=off -m 8192
>>>         -device virtio-balloon -hda /tmp/snap1.qcow2 -boot d -cdrom
>>>         /var/lib/qemu-web-desktop/machines/slax.iso -device
>>>         ich9-ahci,id=ahci -netdev user,id=mynet0 -device
>>>         virtio-net,netdev=mynet0 -usb -device usb-tablet -vga qxl
>>>         -boot c -fsdev
>>>         local,security_model=passthrough,id=fsdev0,path=/mnt -device
>>>         virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=host_mnt -fsdev
>>>         local,security_model=passthrough,id=fsdev1,path=/media
>>>         -device
>>>         virtio-9p-pci,id=fs1,fsdev=fsdev1,mount_tag=host_media -vnc
>>>         127.0.0.1:1
>>>
>>>         # websockify --web /usr/share/novnc --token-plugin=TokenFile
>>>         --token-source=/tmp/websockify-target.d
>>>         --record=/tmp/websocket.log
>>>         --cert=/etc/apache2/certificate/apache-certificate.crt
>>>         --key=/etc/apache2/certificate/apache.key 6001
>>>
>>>         et connexion sur:
>>>
>>>           * https://grades-01.synchrotron-soleil.fr:6001/vnc.html?resize=scale&autoconnect=true&path=?token=target1
>>>             <https://grades-01.synchrotron-soleil.fr:6001/vnc..html?resize=scale&autoconnect=true&path=?token=target1>
>>>
>>>         marche alors sur les deux serveur GPU (mais pas a travers le
>>>         service web).
>>>
>>>         Vous êtes plus habitué aux environnements apache/mpm_itk et
>>>         je ne sais pas comment aller plus loin que mes tests ci-dessus.
>>>
>>>         Pourriez-vous consacrer quelques heures sur le nouveau
>>>         contrat de 100h (déjà entamé) pour mettre a jour l'upstream
>>>         avec la version 22.04.17, et faire des tests d'installation
>>>         sur un environnement vierge avec l'option
>>>         '$config{service_port_multiple}=0;' ? Je ferai ensuite des
>>>         tests similaires sur les serveurs GPU où le système est
>>>         installé (actuellement en 'multiple=1').
>>>
>>>         Merci d'avance, Emmanuel.
>>>
>>>         -- 
>>>         / ___|__/\_| |   | ____|_ _| |      FARHI Emmanuel
>>>         \___ \\ | |   |  _|  | || |      Div Exp/Data Reduction and
>>>         Analysis Team
>>>          ___) /_  _| |___| |___ | || |___   Tel : +33 (1) 69 35 96 04
>>>         |____/  \/ |_____|_____|___|_____|  Saint-Aubin BP 48 -
>>>         91192 GIF/YVETTE CEDEX
>>>         SYNCHROTRON http://www.synchrotron-soleil.fr
>>>
>>>
> -- 
> signature
> / ___|__/\_| |   | ____|_ _| |      FARHI Emmanuel
> \___ \\ | |   |  _|  | || |      Div Exp/Data Reduction and Analysis Team
>  ___) /_  _| |___| |___ | || |___   Tel : +33 (1) 69 35 96 04 
> <callto:+33%20%281%29%2069%2035%2096%2004>
> |____/  \/ |_____|_____|___|_____|  Saint-Aubin BP 48 - 91192 
> GIF/YVETTE CEDEX
> SYNCHROTRON http://www.synchrotron-soleil.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-pan-maintainers/attachments/20220422/71e979c5/attachment-0001.htm>


More information about the Debian-pan-maintainers mailing list