{"id":733,"date":"2012-11-05T11:25:30","date_gmt":"2012-11-05T10:25:30","guid":{"rendered":"http:\/\/www.unicoda.com\/?p=733"},"modified":"2012-11-05T11:25:30","modified_gmt":"2012-11-05T10:25:30","slug":"gitolite-installation","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=733","title":{"rendered":"Gitolite: Installation"},"content":{"rendered":"<p>Pour pouvoir travailler \u00e0 plusieurs sur un projet, ou m\u00eame tout seul, mais avec un gestionnaire de version et pas un Dropbox inutile, je me suis pench\u00e9 sur l&rsquo;installation d&rsquo;un serveur Git, associ\u00e9 \u00e0 Gitolite pour la gestion des utilisateurs.<br \/>\nAlors, pourquoi se faire son propre serveur, quel int\u00e9r\u00eat? Bien s\u00fbr, Github nous propose d\u00e9j\u00e0 ses services, mais pour h\u00e9berger ses projets persos, pas encore pr\u00e8s pour Github car trop jeune, ou ses projets d&rsquo;\u00e9cole, rien de tel que son installation \u00e0 soi. Rajoutons \u00e0 cela la satisfaction d&rsquo;h\u00e9berger les donn\u00e9es sur son propre serveur, en sachant que nous les contr\u00f4lons.<\/p>\n<p>Tr\u00eave de bavardage, on va tout d&rsquo;abord g\u00e9n\u00e9rer une cl\u00e9 rsa avec:<br \/>\n<em>ssh-keygen -t rsa<\/em><br \/>\nDonner \u00e0 la cl\u00e9 votre nom d&rsquo;utilisateur.<\/p>\n<p>On envoie la cl\u00e9 sur le serveur:<br \/>\n<em>scp ~\/.ssh\/id_rsa.pub user@serveur.exemple.org:\/tmp\/user.pub<\/em><\/p>\n<p>On se connecte au serveur via ssh et on obtient les droits root:<br \/>\n<em>ssh user@serveur.exemple.org<\/em><br \/>\n<em> sudo su &#8211;<\/em><\/p>\n<p>On commence par installer tous les paquets n\u00e9cessaires:<br \/>\n<em>aptitude install\u00a0 git-all perl openssh-server gitolite<\/em><\/p>\n<p>On ajoute un utilisateur gitolite avec:<br \/>\n<em>adduser gitolite<\/em><\/p>\n<p>On passe \u00e0 l&rsquo;utilisateur gitolite:<br \/>\n<em>su &#8211; gitolite<\/em><\/p>\n<p>Et on ex\u00e9cute le script d&rsquo;installation de Gitolite:<br \/>\n<em>gl-setup \/tmp\/user.pub<\/em><\/p>\n<p><strong>Retour sur le poste client.<\/strong><br \/>\nOn va r\u00e9cup\u00e9rer le d\u00e9pot gitolite-admin qui va nous permettre de donner des droits et d&rsquo;ajouter des utilisateurs via Git:<br \/>\n<em>git clone gitolite@serveur.exemple.org:gitolite-admin<\/em><\/p>\n<p>A ce stade, si un message vous indique que le d\u00e9pot n&rsquo;est pas valable, une op\u00e9ration s&rsquo;impose pour forcer l&rsquo;utilisation de la cl\u00e9 pr\u00e9c\u00e9demment g\u00e9n\u00e9r\u00e9e lors de la connexion.<br \/>\nDans le fichier <em>.ssh\/config<\/em> sur le poste client:<\/p>\n<pre>Host gitolite\r\nUser gitolite\r\nHostName 37.26.241.58\r\nIdentityFile ~\/.ssh\/user\r\nIdentitiesOnly yes<\/pre>\n<p>Cela devrait r\u00e9gler le probl\u00e8me, sinon une recherche sur le net s&rsquo;impose.<\/p>\n<p>On se place dans le dossier:<br \/>\n<em>cd gitolite-admin<\/em><\/p>\n<p>On \u00e9dite le fichier de conf pour ajouter un d\u00e9pot, par exemple test:<br \/>\n<em>vim conf\/gitolite.conf<\/em><\/p>\n<pre>repo\u00a0\u00a0 \u00a0test\r\nRW+\u00a0\u00a0 \u00a0=\u00a0\u00a0 user<\/pre>\n<p>On commit:<br \/>\n<em>git commit -a -m \u00ab\u00a0Add test repository\u00a0\u00bb<\/em><\/p>\n<p>On peut ensuite cloner le d\u00e9p\u00f4t test:<br \/>\n<em>git clone gitolite@serveur.exemple.org:test<\/em><\/p>\n<p>Ajouter un readme \u00e0 celui-ci:<br \/>\n<em>echo \u00ab\u00a0Test Repo\u00a0\u00bb &gt; README<\/em><\/p>\n<p>Faire un commit:<br \/>\n<em>git commit -a -m \u00ab\u00a0Initial commit\u00a0\u00bb<\/em><\/p>\n<p>Et faire le premier push:<br \/>\n<em>git push origin master<\/em><\/p>\n<p>Voil\u00e0, \u00e0 ce stade, le serveur Git fonctionne parfaitement et je suis en mesure de cr\u00e9er des d\u00e9p\u00f4ts, ajouter des utilisateurs, faire des commits, des push, des pull, etc&#8230;<br \/>\nUne seule contrainte, param\u00e9trer les clefs sur chacun des postes de d\u00e9veloppement.<br \/>\nAutre point \u00e0 \u00e9claircir, le param\u00e9trage des clefs sous Windows (Beurk), pour ceux qui d\u00e9veloppent sur cette plateforme avec des outils propres \u00e0 cet OS (Dev Ps Vita).<br \/>\nProchaines \u00e9tapes donc: documenter ce point pour les \u00e9ventuels utilisateurs et \u00e9tudier l&rsquo;installation du Etherpad-Lite modifi\u00e9 de Framasoft pour compl\u00e9ter les outils disponibles.<br \/>\nEt bien s\u00fbr, proposer ces outils aux amis et connaissances ;).<\/p>\n<p>J&rsquo;allais oublier les liens qui peuvent servir:<br \/>\n<a title=\"Gitolite sur Github\" href=\"https:\/\/github.com\/sitaramc\/gitolite\">Gitolite sur Github<\/a><br \/>\n<a href=\"http:\/\/doc.ubuntu-fr.org\/gitolite\">Gitolite dans la doc Ubuntu<\/a><br \/>\nConcernant le probl\u00e8me de d\u00e9p\u00f4ts\/clefs:<br \/>\n<a href=\"http:\/\/serverfault.com\/questions\/270688\/gitolite-clone-not-working-as-intended\">http:\/\/serverfault.com\/questions\/270688\/gitolite-clone-not-working-as-intended<\/a><br \/>\n<a href=\"http:\/\/www.dotkam.com\/2010\/08\/22\/gitolite-does-not-appear-to-be-a-git-repository\/\">http:\/\/www.dotkam.com\/2010\/08\/22\/gitolite-does-not-appear-to-be-a-git-repository\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour pouvoir travailler \u00e0 plusieurs sur un projet, ou m\u00eame tout seul, mais avec un gestionnaire de version et pas un Dropbox inutile, je me suis pench\u00e9 sur l&rsquo;installation d&rsquo;un serveur Git, associ\u00e9 \u00e0 Gitolite pour la gestion des utilisateurs. Alors, pourquoi se faire son propre serveur, quel int\u00e9r\u00eat? Bien s\u00fbr, Github nous propose d\u00e9j\u00e0 &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=733\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;Gitolite: Installation&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[31],"tags":[15,30],"class_list":["post-733","post","type-post","status-publish","format-standard","hentry","category-installation","tag-git","tag-gitolite"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/733","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=733"}],"version-history":[{"count":4,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/733\/revisions"}],"predecessor-version":[{"id":771,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/733\/revisions\/771"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=733"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}