Visual Studio Code

From Alliance Doc
Jump to navigation Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada.

Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada.

This page is a translated version of the page Visual Studio Code and the translation is 100% complete.


Other languages:

Visual Studio Code est un environnement de développement intégré (IDE pour integrated development environment) de Microsoft qui peut être utilisé pour faire du développement à distance via SSH sur nos grappes. Vous pouvez installer Visual Studio Code sur votre ordinateur et vous connecter à une grappe où vous effectuerez du débogage et des tests. Visual Studio Code s'adapte à plusieurs langages de programmation, mais nous utiliserons ici Python.

Avec un environnement polyvalent et modulaire comme Visual Studio Code, il faut faire attention au type d’action que vous faites. La modification d’un script Python ou de tout autre fichier texte de taille raisonnable (quelques milliers de lignes) est un processus léger qui utilise peu de puissance de traitement ou de mémoire. Par contre, cet environnement offre plusieurs autres fonctionnalités avancées telles que la possibilité de déboguer votre script à distance. Dans ce cas, l’environnement démarre l’exécution du script Python sur le serveur distant, ce qui crée une charge de calcul significative sur potentiellement plusieurs CPU si le script ou les bibliothèques qu’il utilise sont multifil.

Remarque : Quand vous utilisez Visual Studio Code avec Python, évitez d'installer Conda et ses variantes en raison de leur mauvaise adaptation à l'environnement de nos grappes. Plutôt que d'utiliser Conda, utilisez un environnement virtuel Python ou utilisez un conteneur Apptainer.

Configurer l'accès à distance

Configuration de vos clés SSH

  1. Si ce n’est pas déjà fait, générez votre clé SSH; ici nous l’appelons ~/.ssh/ccdb.
  2. Si ce n’est pas déjà fait, ajoutez votre clé publique SSH dans CCDB.
  3. Il est possible qu’un nœud de connexion ne puisse pas obtenir votre clé SSH via LDAP. Dans ce cas, copiez la clé publique dans ~/.ssh/authorized_keys sur le serveur distant; créez ce fichier s’il n’existe pas déjà.

Fichier de configuration SSH

VS Code fonctionne bien avec votre fichier de configuration SSH local (~/.ssh/config). Les options recommandées sont :

File : ~/.ssh/config

Host *
  ServerAliveInterval 300

Host beluga cedar graham narval
  HostName %h.alliancecan.ca
  IdentityFile ~/.ssh/ccdb
  User your_username

Host bc????? bg????? bl?????
  ProxyJump beluga
  IdentityFile ~/.ssh/ccdb
  User your_username

Host cdr*
  ProxyJump cedar
  IdentityFile ~/.ssh/ccdb
  User your_username

Host gra1* gra2* gra3* gra4* gra5* gra6* gra7* gra8* gra9*
  ProxyJump graham
  IdentityFile ~/.ssh/ccdb
  User your_username

Host nc????? ng????? nl?????
  ProxyJump narval
  IdentityFile ~/.ssh/ccdb
  User your_username


Connexion initiale

Puisque certaines grappes ne permettent pas l’accès à internet via les nœuds de calcul, il faut d’abord installer Visual Studio Code Server avant de se connecter à distance à un nœud de calcul. Il faut donc effectuer une connexion initiale à un nœud frontal. Sélectionnez la grappe sur laquelle vous voulez travailler :

  • beluga
  • cedar
  • graham
  • narval
Invite pour la phrase de passe SSH

Remarque : L’invite à entrer votre phrase de passe sera affichée à plusieurs reprises. Si ce n'est pas le cas, copiez votre clé publique comme indiqué au point 3 de Configuration de vos clés SSH ci-dessus.

À votre connexion initiale, VS Code Server sera installé dans ~/.vscode-server/, ce qui peut prendre jusqu’à 5 minutes. Lorsque c’est terminé, fermez la connexion.

Se connecter avec l’authentification multifacteur

À la connexion, cliquez sur details pour faire afficher dans le terminal l’invite pour l’entrée du deuxième facteur

Si l’authentification multifacteur est demandée, cliquez sur details pour faire afficher le terminal VS Code Terminal où vous pourrez entrer le second facteur.

Fermer la connexion

Lors de la fermeture de la fenêtre de VS Code locale, le processus distant de VS Code Server peut continuer à s'exécuter en arrière-plan, ce qui a tendance à accumuler des processus orphelins sur le nœud de connexion. De plus, votre prochaine connexion pourrait se faire à un nœud de connexion différent, ce qui causerait des problèmes et de la confusion. Pour fermer proprement la connexion, cliquez sur le coin inférieur gauche de VS Code et sélectionnez Close Remote Connection dans le haut de la fenêtre.

Se connecter à un nœud de calcul

Étapes à suivre :

  1. Vérifiez que VS Code Server est installé comme décrit ci-dessus.
  2. Lancez une tâche interactive (with salloc) et notez le nom du nœud de calcul.
    1. Important : demandez au moins 2000M de mémoire.
  3. Dans VS Code, lancez une nouvelle session à distance portant le nom du nœud de calcul alloué :
    1. Appuyez sur F1 ou Ctrl+Shift+P pour faire afficher l’invite de commande > dans la palette des commandes.
    2. Commencez à écrire Remote et sélectionnez Remote-SSH: Connect to Host... > Remote-SSH: Connect to Host...
    3. Entrez le nom du nœud de calcul alloué.
      1. Si on vous demande quel est le système d’exploitation, sélectionnez Linux.

Dépannage

Session à distance qui ne fonctionne plus

Problèmes de connexion

Les plus récentes versions de VS Code Server ne supportent plus CentOS 7, ce qui touche les connexions à Béluga, Cedar, Graham et Niagara. Vous pouvez modifier votre version de VS Code pour 1.86.1 ou plus récente; cependant, vous recevrez des avertissements au sujet du système d'exploitation qui n'est pas supporté.

  • une mise à jour sera effectuée sur Béluga dans les prochains mois
  • une version moins récente de VS Code fonctionne toujours via JupyterHub.



Étant donné que VS Code est destiné à un usage autre que le développement directement sur nos grappes, l'exécution de plusieurs instances de VS Code Server sur différents nœuds de connexion peut entraîner des problèmes. Pour contourner ceci :

  • Connectez-vous à tous les nœuds de connexion et arrêtez (avec kkill <PID>>) tous les processus VS Code que vous voyez dans la sortie de ps aux | grep $USER ou de top -u $USER.
  • Si le problème persiste, supprimez prudemment le contenu du répertoire code>~/.vscode-server, puis reconnectez-vous pour refaire l’installation automatique de VS Code Server.

Pour plus d'information