Utiliser VSCode à distance
le 16 octobre 2022
En tant que développeur et plus précisément pour PHP, j'ai été amené à utiliser PHPStorm en IDE principal. Cependant, Microsoft a redoré son image et se rapproche plus des développeurs en ayant acquéri Github, mais aussi en fournissant un IDE opensource. Cet éditeur c'est VSCode, il est modulaire, cross-platforme et est aussi intégré dans Github. Il faut néamoins revoir son usage, car passer d'un IDE à un autre requière de nouvelles dispositions et habitudes à l'usage. Possiblement un point supplémentaire sur le choix de mon adoption est qu'il est gratuit, alors que PHPStorm nécéssite une license mais mieux packagé dans son écosystème. Il faudra alors naviguer judicieusement dans les extensions du marketplace pour customiser son environnement de développement.
Dans mon cas, j'utilise un ordinateur de travail sur Ubuntu faisant office de serveur, celui-ci me permet de faire tourner mes services de développement sous Docker. Et c'est là que j'ai découvert le développement à distance pour pouvoir travailler depuis cette machine depuis un autre ordinateur, en l'occurence sur Mac.
En pratique comment cela fonctionne : la documentation est disponible VS Code Remote Development
Il y a deux extensions officielle de Microsoft à installer :
- Remote - SSH est l'extension qui permet de configurer et se connecter en SSH sur le serveur distant.
-
Remote - SSH: Editing Configuration Files est l'extension qui permet de personnaliser sa configuration à distance en introduisant un onglet intermédiaire
Remote
entreUser
etWorkspace
dans les réglages de VisualStudio. Les règles de surcharge des réglages sont alorsWorkspace
=>Remote
=>User
.
Ensuite, il faut pouvoir se connecter en ssh sur la machine distante. J'utilise l'authentification en clef privée, aussi il est interessant de sauvegarder les hôtes via le fichier config
de configuration SSH. Cela permet alors de retrouver ces raccourcis dans le Remote explorer
et facilement ajouter des projets.
Si vous utilisez une passphrase sur votre clef SSH, il peut être utile de forwarder l'agent SSH dans le fichier de configuration SSH
Host myhost.com
ForwardAgent yes
Un des avantages à l'usage est de pouvoir déléguer la charge de calcul sur une machine externe et de pouvoir basculer d'un ordinateur à l'autre ce qui nécessité moins de ressource. Dans mon cas de figure, l'environnement sur MacOS avec VSCode et un navigateur pour le développement.
Niveau interface, on peut travailler comme si l'on était en local. Même le terminal est connecté sur le serveur distant, ce qui permet d'executer des commandes directement dessus.
Par contre, difficile d'accéder aux fichier distants, on a seulement l'option de téléchargement disponible en menu contextuel. Pour cela j'ai installé sur le serveur Ubuntu le service samba pour lequel j'ai accordé les permission d'écriture (remplacer an_user
par votre utilisateur)
$ apt-get install samba
$ sudo smbpasswd -a an_user (MOT DE PASSE)
$ sudo nano /etc/samba/smb.conf
[an_user]
comment = User an_user
path = /home/an_user
valid users = an_user
public = no
writable = yes
$ sudo service smbd reload # on reload du service Samba
Pour être encore plus indépendant de la machine, on pourrait aussi considérer allumer le serveur à distance grâce au NetBoot, voir se configurer et se connecter sur un serveur dédié virtuel.
N'hésitez pas à partagez vos suggestions.