VSCODE (procédure) 

Virtual Studio Code (vscode)  est un environnement de développement intégré qui offre de très nombreuses possibilités, notamment  des facilités pour le développement à distance...Cette fiche n'est pas une publicité, mais une procédure pour recadrer l'usage de vscode sur la plateforme de calcul et plus particulièrement le frontal (calculco).

En trois clicks sur votre PC, vscode est à même de lancer un serveur (!) sur la machine distante (frontal calculco) de sorte que vous pouvez visualiser vos fichiers distants, les modifier. Quelque clicks supplémentaires vous permettent d'installer des plugins, des environnements etc. Soit. En terme de ressources prises sur le frontal (commande htop)  , on obtient quelque chose comme (cliquer sur l'image pour une meilleure définition) :  

vscode small 

 

...Un utilisateur, c'est soutenable (les +20Go(!) affichés ci-dessus ne sont que du «cache») , mais sans contrôle et plusieurs utilisateurs, cela ne l'est pas:  l'usage de vscode est donc interdit sur le frontal. Il est en revanche autorisé avec une réservation de ressources : session interactive sur un nœud de calcul, «à la manière des notebooks» ...avec les mêmes recommandations (cf. introduction de notebook jupyter )

Deux méthodes sont proposées pour travailler avec vscode sur les nœuds de calcul:

  

Sommaire[Masquer]
 

1. version web (la plus simple?) 

vous aurez probablement installé vscode sur votre compte calculco avec une commande du type (l'installation de vscode n'est pas l'objet de cette fiche) :

vous@calculco: curl -fsSL https://code-server.dev/install.sh | sh -s -- --method=standalone 

lancer ensuite une réservation avec le script OAR (path de votre installation code-server à modifier si différent)  

calculco#  oarsub -S ./vscode1.oar
[ADMISSION RULE] Modify resource description with type constraints
[ADMISSION RULE]   ...
OAR_JOB_ID=4802641

Après quelqlues secondes, le fichier de sortie du batch (vscode1.oar) est disponible. Ouvrir ce dernier par exemple avec la commande cat et suivre les instructions à la lettre ( 2 copier coller à faire !) . 

calculco# cat OAR.vscode.4802641.stdout
...
******************** INSTRUCTIONS: **************************************
Sur votre PC/Laptop (ET NON le Frontal!!) , ouvrir un tunnel :
ssh -L 60645:orval04:60645 Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
puis ouvrir l'URL suivante sur votre PC/laptop: 
http://localhost:60645 
Password d'accès au notebook VSCode: azerty
*******************************************************************
....  

lorsque vous avez fini, quitter votre notebook sur votre PC n'est pas suffisant pour libérer les ressources, tuer votre job :  

vous@calculco: oardel 4802641

 

2. version application cliente sur votre PC (usage standard?) 

Les noeuds ne sont pas accessibles de l'extérieur, ...pas vraiment non plus de l'intérieur (frontal) autrement que conduit par le super-secrétaire qui connait l'emploi du temps de la plateforme: l'utilisateur oar.  La première partie consiste juste à mettre en place une connexion ssh, directe (sans mot de passe), depuis votre PC au nœud (orvalXX) que vous avez préalablement réservé en passant par calculco :

(vous@pc)->(vous@calculco)->(oar[vous]@orvalXX) 

Pour l'accès simple à calculco , on suppose  que les instructions de la première page de la plateforme en ce qui concerne les clefs ainsi que celles concernant le fichier .ssh/config ont été suivies.  Donc,  depuis votre PC:   

Pc-perso# ssh calculco  

 ...autorise une connexion directe sans mot de passe sur le frontal .

2.1. configurations  préalables : 

sur calculco, créer un couple de clé privée/publique destinée à oar  

calculco# ssh-keygen -t rsa -b 4096 -f ~/.ssh/oar 

ajouter la ligne  suivante dans votre fichier ~/.bashrc (ou .bash_profile) 

export OAR_JOB_KEY_FILE=/nfs/home/votre_labo/votre_login/.ssh/oar

 sur votre PC:

recopier les deux clefs dans votre répertoire de configuration (~/.ssh/)

PC-perso# scp -p calculco:.ssh/oar ~/.ssh/
PC-perso# scp -p calculco:.ssh/oar.pub ~/.ssh/

Puis ajouter à votre fichier ~/.ssh/config (pour window, le fichier serait %USERPROFILE%/.ssh/config?), la configuration concernant les noeuds de calculs. Au final, le fichier d'Agathe Zebluze devrait être : 

Host calculco                  # partie permettant de se connecter directement sur calculco  
  Hostname calculco.univ-littoral.fr   # avec: ssh calculco , au lieu de: 
  User azebluze                        # ssh Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser. 
  IdentityFile /home/agathe/.ssh/id_ed25519

Host orval?? # ?? = wildcard pour tous les orval__ User oar ProxyCommand ssh -W %h:%p calculco Port 6667 IdentityFile /Users/agathe/.ssh/oar ForwardAgent no

2.2. tests et lancement de VSCode

Faire un réservation oarsub - par exemple interactive - mais avec l'option -k :

calculco:~$ oarsub -I -k 
[ADMISSION RULE] Set default walltime to 7200. ...
Import job key from file: /nfs/home/scosi/azebluze/.ssh/oar # <- oar est informé qu'une OAR_JOB_ID=4803810. # connexion via clé est possible
Interactive mode: waiting..Interactive mode: waiting..

[azebluze@orval04]. # <- la session est ouverte sur orval04

Test (depuis pc personnel) :

Agathe@PC-perso$ ssh orval04     # connexion directe sur nœud de calcul !
....
[azebluze@orval04] env | grep OAR
OAR_JOB_WALLTIME_SECONDS=7200
OAR_ARRAY_INDEX=1
OAR_O_WORKDIR=/nfs/home/scosi/azebluze.
...

bulb  Indépendamment de  'vscode', le système mis en place ici est une alternative intéressante à la commande 'oarsub -C JOBID' pour se connecter depuis son poste de travail à ses jobs en cours (...à condition de les avoir lancé  avec l'option -k de oarsub).

VSCODE:

  1. lancer l'application sur votre PC,
  2. cliquer (tout en bas à gauche) sur l'icône de connexions distante (><)
  3. choisir "SSH" ....(une première extension s'installe après votre accord)
  4. vscode est en mesure de lire votre fichier ~/.ssh/config et propose le choix de tous les serveurs qui s'y trouve (dont calculco, mauvais choix car interdit) ...mais pas les orvalXX en raison de la syntaxe orval?? de ce fichier:  saisir donc, dans notre exemple, orval04 . Votre accord est encore requis  pour accepter (ou pas)  l'installation d'un serveur distant. Des flétans vous hurlent de dire non, mais vous acceptez...quelques degrés supplémentaires dans l'océan - pardon,  minutes supplémentaires et vous y êtes, ça fonctionne. 

3. soucis rencontrés 

  • vscode “bloque“ pour télécharger telle ou telle extension : désobéissez et activez une connexion 'remote' sur le frontal (calculco). Installez le nécessaire mais ne prévoyez pas  de travailler sur le frontal : un script tue les processus 'vscode-server' plus vieux que 1h. 
  • si tel est le cas ( vous vous êtes connectés sur calculco) : quittez correctement cette connexion ( Menu "File -> Close Connexion" ) ...faute de quoi, à chaque lancement, vscode se reconnectera ( sans avertissement) sur le frontal calculco ...et lancera ses serveurs indésirables...
  • dans tous les cas, il semble que l'application a du mal à libérer les ressources, même en quittant -apparement proprement - l'application depuis son menu : merci donc de vérifier , tuer au besoin vos process ( oardel votre session fait très bien le job !)