Loading search data...

Comment Développer à distance avec Visual Code ?

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 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 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 cà 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 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 resource (serveur, conteneur ou WSL), il installe tout ce qu’il faut pour que cela fonctionne sans aucune action de votre part. Pour les containers il arrive parfois que cela ne fonctionne pas, comme par exemple des conteneurs à base d’Alpine Linux, mais je suis sur 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 code avec en bas de l’écran le type de remote ouvert. Visual Code va simplement vous demandez de quelle 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 installé 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.

Mots clés :

devops tutorials

Si vous avez apprécié cet article de blog, vous pouvez m'encourager à produire plus de contenu en m'offrant un café sur Ko-Fi. Vous pouvez aussi passer votre prochaine commande sur amazon, sans que cela ne nous coûte plus cher, via ce lien. Je vous remercie de votre soutien