[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