Travailler à distance

De Ensiwiki.

Aller à : Navigation, rechercher


Sommaire

  • 1 Webmail
  • 2 Outils pour l'accès distant aux machines de l'Ensimag
    • 2.1 Par SSH : scp, rsync, sftp, sshfs, lftp
    • 2.2 Unison
    • 2.3 Gestionnaires de version : Git, Mercurial, SVN
  • 3 Méthodes de travail à distance
    • 3.1 Travail direct sur serveur (TX, SSH), petites modifications sur machine personnelle
    • 3.2 Travail sur machine personnelle, tests sur serveur avec rsync
    • 3.3 Travail sur machine personnelle et sur serveur en utilisant Git

Webmail

Lorsque vous êtes loin de l'Ensimag, vous pouvez quand même lire vos emails à l'Ensimag en utilisant un simple navigateur. Le serveur webmail se trouve à https://webmail.ensimag.fr. Il faut alors sélectionner le serveur correspondant à votre promo (p.ex., en 1A, ce sera Ensimag telesun) et taper votre login et votre mot de passe.

Outils pour l'accès distant aux machines de l'Ensimag

Par SSH : scp, rsync, sftp, sshfs, lftp

Le moyen le plus simple d'accéder aux machines de l'Ensimag à distance est bien sûr par SSH. Pour une utilisation avancée, voyez également la page Clés SSH.

SSH ne se limite pas à un terminal distant cependant ; il peut servir de transport chiffré, donc sécurisé, pour d'autres programmes : scp, rsync, sftp et sshfs, entre autres.

  • vous devriez avoir appris à vous servir de scp et de sftp durant le Stage Unix de rentrée. Si le principe de sftp vous plait mais que vous trouvez l'outil trop rudimentaire, regardez du côté de lftp qui permet beaucoup plus de choses (en particulier le transfert d'un répertoire complet avec la commande mirror).
  • rsync est une version largement améliorée de scp (le principal avantage : si on recopie un répertoire qui a déjà été recopié plus tôt, rsync ne recopie que ce qui a changé). Par exemple, pour récupérer tout le contenu de votre compte Ensimag dans le répertoire ~/telesun/ de votre machine personnelle, faites (depuis votre machine perso) :
    rsync -av votre-login@telesun.imag.fr: ~/telesun/
    Plus de détails sur cette page ou bien sûr dans man rsync.
  • sshfs est décrit pour Mac OS X dans l'article Monter le dossier maison sous mac depuis l'extérieur. Sous Linux, après avoir éventuellement installé sshfs, il suffit de faire (sur votre machine personnelle) :
    sshfs telesun.imag.fr: ~/telesun/
    pour monter votre répertoire HOME de telesun dans le répertoire ~/telesun/ chez vous (i.e. les modifications que vous ferez dans ~/telesun sont transférées sur telesun au fur et à mesure que vous les faites). Cf. sshfs dans la documentation d'Ubuntu par exemple.

Unison

Unison permet de synchroniser des fichiers entre deux sources ayant divergé chacune de leur côté. En clair, si vous modifiez des fichiers chez vous et les « mêmes » sur le serveur de l'Ensimag, vous pourrez avoir une copie uniforme à la fin avec toutes vos modifications. Voyez la page dédiée à Unison pour un petit tuto.

Gestionnaires de version : Git, Mercurial, SVN

Une utilisation un peu déviante des gestionnaires de versions est de les utiliser pour synchroniser non pas le travail entre plusieurs membres mais celui d'un seul, distribué sur plusieurs machines. Le problème de cette manière de faire est qu'elle nécessite de commit ses changements, ce qui peut polluer le log si vous ne faites pas attention.

Si vous utilisez Git, il est aisé de contourner ce problème en utilisant des branches de travail et le squashing. Voyez plus bas dans les méthodes de travail proposées pour un petit guide.

Méthodes de travail à distance

Nous allons ici illustrer à l'aide des outils présentés plus haut des méthodes de travail possibles à l'Ensimag. N'hésitez pas à contribuer vos astuces ou votre façon de faire !

Travail direct sur serveur (TX, SSH), petites modifications sur machine personnelle

Probablement le choix de la plupart des ensimagiens, et sans doute le choix le plus sûr. Si vous travaillez peu à distance, le plus simple est de vous connecter en SSH sur le serveur et de travailler directement sur les fichiers. Si vous n'êtes pas dans l'enceinte de l'Ensimag-même ceci dit, vous aurez du mal à faire tourner les applications graphiques, il faudra donc éditer dans une console (Emacs ou Vim vous appellent).

Pour le coup, il n'y a pas une seule manière de procéder en vérité :

  • La solution la plus intuitive : lancez un shell à travers SSH avec la commande ssh elle-même, vous aurez une console à votre disposition, ce qui est suffisant pour la grande majorité des tâches que vous aurez à effectuer.
  • Une alternative un peu lourde : téléchargez les fichiers chez vous (avec scp, sftp, rsync ou unison), éditez les, et renvoyez les de la même manière. Cela permet d'éditer dans votre éditeur local.
  • Certains éditeurs (comme Emacs avec /ssh:<login>@<machine>:<chemin>) vous permettent d'éditer directement à travers SSH.
  • Éditer les fichiers montés par sshfs, pour les courageux qui n'ont pas peur, sshfs étant relativement jeune, et probablement pas le système le plus sûr, en cas de perte de connexion ou autre (?).

Points forts :

  • Tout est sur le serveur, pas besoin de chercher plus loin ! En plus, vous bénéficiez de la sauvegarde automatique.
  • Ce que vous programmez sur le serveur devrait marcher tel quel une fois rendu (sauf gros bug).
  • Simple, plein de gens pour vous aider, si quelque chose va de travers, on ne vous tapera pas (normalement) sur les doigts.

Points faibles :

  • Environnement du serveur, des TX, pas forcément gai.
  • Peu devenir vite lourd si vous éditez un peu souvent vos fichiers sur votre machine et que vous utilisez scp pour copier les fichiers un à un... (voyez les conseils, juste au-dessous)
  • S'adapte mal à un week-end de stress sans accès aux serveurs, juste avant de rendre un TP. Plus généralement, peu flexible.

Conseils :

  • Adaptez la méthode de transfert à vos besoins. Pour un seul fichier, scp fait très bien l'affaire ; pour une poignée, scp -r ou sftp. Si vous commencez à faire beaucoup d'édition chez vous, rsync sera plus approprié. Si vous vous dédoublez et vous mettez à éditer à deux endroits en même temps, considérez unison.
  • Mais généralement, si vous passez beaucoup de temps à éditer sur votre machine personnelle, vous seriez peut-être plus productif en y effectuant la compilation et les tests également (voyez ci-dessous).

Travail sur machine personnelle, tests sur serveur avec rsync

L'option de ceux qui aiment leur petit confort à eux, sur leur machine, avec leur config, bref. Une solution adaptée à ceux qui travaillent majoritairement sur leur machine et ne font que tester sur telesun/ensibm/ensisun est d'utiliser rsync pour transmettre les changements sur le serveur :

  1. Éditez, compilez, testez chez vous.
  2. Utilisez rsync pour mettre à jour la copie de votre travail sur le serveur.
  3. Utilisez un shell ssh pour relancer les tests sur celui-ci.

Points forts :

  • Votre environnement, vos outils, vos configurations.
  • Si vous effectuez l'étape 2 suffisamment souvent, vous disposez d'une copie redondante de vos données, sauvegardée chaque nuit, etc. en plus de votre copie locale. Bon plan backup à peu de frais si vous n'avez rien d'autre.
  • Travail aussi bien chez vous, qu'en salle TX, qu'en salle de TD si les salles TX sont trop occupées.

Points faibles :

  • Méthode de travail biaisée vers votre machine personnelle.
  • Demande de configurer son environnement personnel pour pouvoir y effectuer les travaux demandés.
  • Demande une bonne organisation, en particulier, si vous n'écrivez pas de scripts de tests (semi-)automatisés que vous pouvez relancer en une commande sur le serveur Ensimag, vous perdrez en productivité (et gagnerez en risque d'erreur) à reproduire les tests sur deux machines différentes.
  • Possibilité d'incompatibilité entre ce qui est fonctionne sur votre machine et ce qui fonctionne sur le serveur. Il faut faire attention, et savoir un petit peu où regarder pour ne pas se faire avoir. Plus votre système est exotique / éloigné de celui du serveur (voyez Architecture réseau Ensimag), plus il faudra être vigilant.

Conseils :

  • Plutôt pour ceux qui se sentent à l'aise avec le système.
  • Faites vous des scripts pour automatiser les choses fastidieuses.

Travail sur machine personnelle et sur serveur en utilisant Git

Cette section suppose que vous savez déjà vous servir de Git.

Git étant un gestionnaire de versions distribué, il peut vous permettre de travailler sur deux machines en même temps, en maintenant un dépôt sur chacune, synchronisés avec git pull ou git push, selon ce qui est pratique. Afin de garder des logs sains, travaillez sur une branche temporaire, dans laquelle vous pourrez commit selon le besoin : 22h et l'Ensimag ferme ? pas de problème, git commit et vous pourrez git pull de chez vous. Lorsque vous êtes satisfait des changements sur la version de travail et souhaitez effectuer un vrai commit, revenez sur votre branche de développement principale et effectuez un git merge --squash ; et voilà ! cela vous fera un beau gros commit, un seul.

Pour résumer, préparer le terrain :

$ git branch work
$ git checkout work

De chez vous :

$ git checkout work  # si ce n'est déjà fait
$ git pull
$ $EDITOR ...        # faites vos changements
$ git commit -a
$ git push

De l'Ensimag :

$ git checkout work  # si ce n'est déjà fait
$ $EDITOR ...        # faites vos changements
$ git commit -a

Pour faire un vrai commit :

$ git checkout master
$ git merge --squash work
$ git commit

Points forts :

  • Pareil que la méthode rsync.
  • De plus, permet de travailler aux deux endroits également.
  • Combine le processus de duplication à celui de développement utilisant le gestionnaire de versions (à supposer que vous en utilisiez un de base) : vous avez en plus le versionnement de vos fichiers gratuitement !

Points faibles :

  • Pareil que pour la méthode rsync, mais non biaisée.
  • Pas vraiment pour débutant, ou alors débutant bien motivé et prudent (lisez : faites un backup de vos données avant d'utiliser Git n'importe comment dessus).

Conseils :

  • Rien de spécial, Si vous vous lancez là-dedans, vous savez probablement ce que vous faites de toute façon. :)
  • Ah si, lorsque vous êtes sous pression et devez effectuer des tests rapidement (p.ex. deadline de rendu de TP), rsync est plus simple et il est moins facile de faire des bêtises avec ; cela va plus vite de l'utiliser.
Récupérée de « http://ensiwiki.ensimag.fr/index.php/Travailler_%C3%A0_distance »
Catégories : Intermédiaire | Réseau
Affichages
  • Page
  • Discussion
  • Voir le texte source
  • Historique
Outils personnels
  •  
  • Connexion
Actualité
  • Soutenances de PFE
  • Projet système
  • Projets spécialité
  • Lexique franco-anglais
  • Stage Unix de rentrée
  • Projet C
  • Plannings des stages
Navigation
Logo Ensimag
  • Accueil
  • FAQ
  • Mode d'emploi
  • Droit d'auteur
  • Modifications récentes
  • Page au hasard
Boîte à outils
  • Pages liées
  • Suivi des pages liées
  • Pages spéciales
  • Version imprimable
  • Lien historique
  • Principaux contributeurs
Powered by MediaWiki
Attribution-Share Alike 3.0 Unported
  • Dernière modification de cette page le 31 juillet 2009 à 11:19.
  • Cette page a été consultée 4 046 fois.
  • Contenu disponible sous Attribution-Share Alike 3.0 Unported.
  • Politique de confidentialité
  • À propos de Ensiwiki
  • Avertissements