Gestion de code source en environnement réseau complexe <subtitle>Paru dans la Linux Gazette 50 <author>James M. Rogers <date>Février 2000 <!-- Compléter: Linux Gazette n°50 - Traducteur: Pierre Tane --> <sect>Gestion de code source en environnement réseau complexe <p>Par James M. Rogers <url name="jrogers@visnetinc.com" url="mailto:jrogers@visnetinc.com?subject=Re:cvs-ssh"> Quand plus d'une personne travaille sur un projet, vous devez vous assurer que chacun n'empiète pas sur les modifications des autres. Quand il n'y a que quelques répertoires, le <em/Système de Contrôle de Révision/ (<url url="http://www.gnu.org/order/ftp.html" name="Revision Control System (RCS)">) est parfait. Mais quand il s'agit de dizaines de projets faisant appel à dix programmeurs et que votre environnement de développement est distribué sur plusieurs machines, vous êtes face à un véritable cauchemar en gestion de projet que RCS ne va pas beaucoup vous aider à surpasser. Ce qu'il vous faut alors, c'est le <em/Système de Version Concurrente/ (<url url="http://www.gnu.org/order/ftp.html" name="Concurent Version System (CVS)">. CVS est génial car il fonctionne en réseau, travaille avec des arborescences entières de répertoires et permet à plusieurs personnes de travailler sur le même fichier au même moment sans perdre les changements des uns et des autres. CVS est fourni en standard avec les RedHat 6.0+. Aussi bien que soit CVS, il ne change rien au fait que votre code source passe sur Internet sans cryptage. Ce mois ci, je vais traiter de la manière de monter un dépôt de code source sécurisé et utilisable en réseau et ceci par le biais du programme <em/ssh/ (<em/Secure Shell/ ou shell sécurisé). Le mois prochain, je vais vous montrer comment importer vos projets actuels dans ce dépôt, comment en extraire votre code, mettre à jour les fichiers et faire prendre en compte vos modifications. La procédure est la suivante~: <itemize> <item> Installez ssh sur vos machines. Ce programme est disponible à l'adresse suivante~: <url url="ftp://sunsite.unc.edu/pub/packages/security/ssh/" name="ftp://sunsite.unc.edu/pub/packages/security/ssh/">. La société qui s'occupe de ssh se trouve à l'adresse suivante~: <url url="http://ssh.com" name="http://ssh.com">. </item> <item> Configurez <tt/sshd/ sur la machine qui va abriter le dépôt. </item> <item> Créez un nouveau compte utilisateur pour chaque groupe de programmeurs sur la machine qui abrite le compte de dépôt. Pour cet exemple, vous pouvez créer un nouvel utilisateur <tt/repository/ ou <tt/depot/.</item> <item> Créez un répertoire <tt/.ssh/ sur chacun des comptes utilisateurs, y compris les nouveaux comptes créés pour le dépôt. </item> <item> Faites <tt/chmod 700 .ssh/ sur le répertoire personnel de chaque compte, y compris les comptes de dépôt. </item> <item> Faites créer à tout le monde une clé publique et une clé privée en utilisant <tt/ssh-keygen/. </item> <item> Récupérez les fichiers <tt>~/.ssh/identity.pub</tt> de chacun et placez les dans le fichier <tt>~/.ssh/authorized_keys</tt> du compte de dépôt pour ceux qui ont le droit de travailler sur ce projet. </item> <item> Faites <tt/chmod 700 ~/.ssh/authorized_keys/ sur le compte de dépôt. </item> <item> Testez pour voir si tout le monde peut faire <tt/ssh depot@hote_de_depot/ où <em/depot/ est le nom du compte de dépôt et <em/hote_de_depot/ est le nom de l'hôte qui abrite le(s) répertoire(s) de dépôt. </item> <item> Créez un répertoire <tt>~/cvsroot</tt> dans la racine du compte de dépôt. </item> <item> Positionnez les deux variables d'environnement suivantes dans le script d'initialisation que vous utilisez. Pour moi, c'était le fichier <tt>~/.bashrc</tt>~: <tscreen><code> export CVS_RSH=ssh export CVSROOT=depot@hote_de_depot:/home/depot/cvsroot </code></tscreen> </item> <item> Loguez vous dans une autre fenêtre afin de vérifier que vous pouvez toujours vous loguer et que ces variables d'environnement sont bien positionnées. </item> <item> Faites une commande <tt/cvs init/ pour tous les utilisateurs habilités à utiliser ce dépôt~: vous ne devriez pas avoir de message d'erreur. </item> <item> En cas de message d'erreur, recommencez depuis le début et répétez les instructions jusqu'à ce que ça marche. <!-- NdT: la méthode coué en informatique ;-) --> </item> <item> Si vous avez des questions, n'hésitez pas à me contacter. </item> <item> Profitez de tout cela pour vous familiariser avec CVS et SSH. Lisez la documentation afin de voir s'ils ne peuvent pas vous servir en d'autres occasions. Si quelqu'un voit une autre manière de mettre en place un dépôt CVS, qu'il la partage avec nous~! Je suis tout particulièrement intéressé par une méthode pour monter un dépôt cvs public comme ceux que l'on voit partout sur l'internet. </item> </itemize> Par ailleurs, pour ceux qui ne l'ont pas vu, il vous est montré ci-dessus comment configurer vos comptes de manière à ne vous loguer qu'une seule fois sur une machine sécurisée et ensuite à vous connecter sur les autres machines sans login. J'en discuterai plus avant dans mon prochain article de cette série. <p>Copyright © 2000, James M. Rogers - Paru dans le numéro 50 de la <em/Linux Gazette/ de Février 2000. <p>Traduction française de Pierre Tane <url url="mailto:tanep@bigfoot.com" name="tanep@bigfoot.com">. </sect> </article>