Aller au contenu principal

Les extensions Remote de Visual Code

· 5 minutes de lecture
Stéphane ROBERT

logo

Le point sur ma situation : Comme beaucoup d'entreprises imposent l'utilisation de postes Windows alors comment développer sur des environnements Linux avec un grand confort ?

Je m'explique, je dois éviter d'installer Visual Studio Code dans une VM Linux avec l'environnement graphique. En effet, à force de jouer avec ma VM Linux, il arrive parfois que je sois obligé de la reconstruire. Pour limiter les opérations d'installation j'utilise Vagrant. J'ai tout testé : WSL, VirtualBox, Multipass, Hyper-v, VMware Player, ... Et mon choix, c'est porté sur Hyper-v, car pour moi le plus performant et je vous l'assure il y a des sacrées différences entre toutes ces solutions.

Je dois aussi pouvoir installer tout ce qu'il faut pour virtualiser des VM dans ma VM pour tester mes playbooks Ansible. Je dois donc pouvoir créer et détruire rapidement une VM sans l'héberger dans le datacenter. Pour ça j'utilise vagrant + libvirt + qemu + kvm, le billet décrivant l'installation

Qu'apportent ces extensions Visual Code ?

Le pack d'extension Remote de Microsoft

Le pack d'extension de développement à distance vous permet d'ouvrir n'importe quel dossier dans un conteneur, sur une machine distante ou dans le sous-système Windows pour Linux (WSL) et de profiter de l'ensemble des fonctionnalités de Visual Code.

remote extensions visual studio code

Ce pack d'extension de développement à distance comprend trois extensions :

Remote SSH : Permet de Travailler dans sur n'importe quelle machine (windows, Linux) dès lors que le Serveur SSH tourne dessus. Il est possible d'accéder aux fichiers, et d'installer en grande partie les extensions pour tous les langages. Il est par exemple possible de piloter docker via son extension dédiée ou de debugger à distance comme si cela tournait sur son poste de travail.

Remote WSL: Idem à Remote SSH mais dans le sous-système Linux de Windows connu sous le nom de WSL.

Remote containers : Travaillez avec une chaîne d'outils distincte ou une application basée sur un conteneur en ouvrant n'importe quel dossier monté dans ou à l'intérieur d'un conteneur.

Ces extensions installent en fait un serveur tournant sous node.js permettant toutes ces interactions. Dès lors que l'on cherche à accéder à une ressource (serveur, conteneur ou WSL), il installe tout ce qu'il faut pour que cela fonctionne sans aucune action de votre part. Pour les conteneurs, il arrive parfois que cela ne fonctionne pas, par exemple des conteneurs à base d'Alpine Linux, mais je suis sûr qu'en cherchant un peu, on doit arriver à quelque chose.

On peut même partager des ports distants en local sans triturer son fichier de config ssh. Trop cool.

Comment les installer et les utiliser ?

Il suffit comme pour les autres extensions de cliquer sur l'icône des extensions et de rechercher remote. Faites bien attention de ne prendre que celles venant de Microsoft !

remote extensions visual code

L'extension Remote Developpment en fait le pack des trois extensions. Il est donc possible de n'installer que celles dont vous avez besoin.

Une fois installées, vous devriez retrouver une nouvelle icône à gauche de l'écran, de la forme d'un écran avec un petit logo.

remote extensions visual code

En haut, il y a petite liste déroulante permettant de choisir le type de remote: container, SSH et WSL.

Pour configurer la partie SSH, il y a une petite icône qui permet de choisir la configuration SSH et de l'éditer. Par exemple, je copie dedans la config vagrant ssh-config pour accéder à ma machine devbox. L'extension de domaine mshome.net est celle qu'utilise hyper-v, donc plus besoin de gérer son IP.

Host devbox
HostName devbox.mshome.net
User vagrant
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile D:/Projets/devbox-hv/.vagrant/machines/devbox/hyperv/private_key

remote extensions visual code

Ensuite dans la liste des machines configurées il suffit de cliquer sur l'icône juste en dessous de celle de la configuration, elle n'apparaît que si on survole le nom de la machine distante. Pour lancer une session sur cette machine.

remote extensions visual code

Vous devriez voir apparaître une nouvelle fenêtre visual studio code avec en bas de l'écran le type de remote ouvert. Visual Code va simplement, vous demander de quel type de machine il s'agit : Windows, Linux ou MacOs.

remote extensions visual code

Si vous ouvrez un terminal [CTRL] + [J], vous devriez voir apparaître un nouvel onglet ports, qui permet de rediriger un port distant en local.

remote extensions visual code

Ici je redirige le port 1313 utilisé par le serveur hugo, le moteur de rendu de mon blog statique. Dès lors vous pouvez accéder au port dans votre navigateur sur votre poste Windows, ou aussi un gestionnaire de BDD ou tout autre outil.

Comment installer des extensions sur le poste distant

Il est comme je l'ai plus haut possible d'installer les mêmes extensions que celles que vous avez installé en local. Par exemple l'extension Pylance pour python.

Pour les installer cliquez sur le bouton extensions. Dans la zone de recherche tapez le type d'extension que vous voulez installer et normalement vous devriez voir apparaître des extensions grisées avec un bouton : Installer dans SSH ....

remote extensions visual code

Cliquez dessus, patientez quelques secondes et hop le tour est joué.

Plein de possibilité sont offertes comme contrôler un cluster Kubernetes distant avec l'extension développé par Oketo.

Conclusion

J'espère que vous aurez compris le potentiel qu'offre ces extensions. Personnellement je ne peux plus m'en passer. Je ne vois aucune différence entre un visual code sur mon poste Windows que celui installé dans la VM Linux.