J'ai récemment installé ubuntu-server sur Amazon EC2. Je voudrais l'utiliser comme mon serveur git, afin de pouvoir y stocker mes dépôts.
Alors, où puis-je trouver des instructions détaillées sur la configuration de git sur le serveur Ubuntu? Toutes ces clés SSH et ce genre de choses, plusieurs utilisateurs, etc.
Vous pouvez utiliser le tutoriel pour installer un serveur Git proposé par aking1012 vous ou simplement installer le serveur SSH sur votre instance EC2 (il serait probablement sage de le sécuriser et de modifier le port par défaut).
Git peut être sans serveur, vous initialisez votre référentiel et vous y accédez depuis distant via SSH. Donc, des instructions comme celle-ci sur le serveur Ubuntu devraient le faire:
GIT_DIR=project.git git init
cd project.git
git --bare update-server-info
cp hooks/post-update.sample hooks/post-update
Enfin, installez SSH sur votre serveur:
Sudo apt-get install ssh-server
Maintenant, vous devez configurer SSH pour le sécuriser.
Il est temps de mettre votre projet en ligne (les données que vous avez déjà sur votre machine de développement):
git Push ssh://<username>@<remote-git-hostname>/path/to/project.git master
Et maintenant, vous pouvez commencer à cloner. Vous allez sur votre machine de développement:
git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git
Vérifiez ceci excellente ressource sur Git .
Et pour générer vos clés ssh pour une authentification plus sûre, vous pouvez lire cet article sur authentification SSH .
J'utilise Gitolite pour toutes mes configurations de serveur Git, ce qui permet une granularité de sécurité d'accès "par branche". L'installation est assez simple si vous le faites sur un serveur distant, c'est aussi simple que d'exécuter un script interactif. En plus de cette nature "facile à installer", il a également un paquet dans Natty et Maverick
Sudo apt-get install gitolite
Cela ne fournira pas une interface Web comme Github ou Gitweb - mais vous pouvez facilement configurer et installer celles-ci sur quelque chose comme Gitolite.
J'aime gitolite . Le livre Pro Git a un section mais je vous recommande de lire le livre en entier.
En ce qui concerne votre exigence d'utilisateurs multiples:
Gitolite vous permet de spécifier des autorisations non seulement par référentiel (comme le fait Gitosis), mais également par noms de branche ou de balise dans chaque référentiel. Autrement dit, vous pouvez spécifier que certaines personnes (ou groupes de personnes) ne peuvent transmettre que certains "ref" (branches ou tags) mais pas d'autres.
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way peut être légèrement modifié pour répondre à vos besoins ... a tutoriel similaire http://blog.agdunn.net/?p=277 .
Suivez certainement la documentation officielle: https://help.ubuntu.com/community/Git (section Configuration de Git et de la gestion de projet )
La solution qui me convenait le mieux était la configuration de WebDAV.
Sudo a2enmod Sudo dav_fs
Sudo a2enmod dav
ajoutez un nouveau fichier à /etc/Apache2/sites-available
et nommez-le, par exemple, git.yourserver.com
. Modifiez-le et ajoutez les lignes suivantes:
<VirtualHost *:80>
DocumentRoot /var/www/git.yourserver.com/repos
ServerName git.yourserver.net
Options Indexes FollowSymLinks MultiViews
<Location />
DAV On
AuthType Basic
AuthName "git repos"
AuthUserFile /var/www/git.yourserver.net/password.dav
Require valid-user
</Location>
</VirtualHost>
/var/www/git.yourserver.com
et le répertoire repos
à l'intérieur de l'idSudo chown www-data /var/www/git.yourserver.com/repos
Sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login
et entrez le mot de passe de l'utilisateur nommé user_login
Sudo chown root:www-data /var/www/git.yourserver.com/password.dav
Sudo chmod 640 /var/www/git.yourserver.com/password.dav
Maintenant, Sudo a2ensite git.yourserver.com
and Sudo service Apache2 restart
.
/var/www/git.yourserver.com/repos
et créez un répertoire, par exemple, myrepo.git
cd myrepo.git
git --bare init
git update-server-info
Maintenant, déconnectez-vous de votre serveur distant et accédez au répertoire local dans lequel vous souhaitez modifier vos fichiers.
git clone http://user_login:[email protected]/myrepo.git
et vous avez fini. Si vous souhaitez envoyer vos modifications validées au serveur:
git Push Origin master
Vous pouvez créer autant d'utilisateurs que vous le souhaitez à l'aide de Sudo htpasswd
. N'oubliez pas de ne pas utiliser le commutateur -c
lors de l'ajout d'utilisateurs, car l'ancien fichier sera supprimé.
J'aime aussi l'approche de gitolite pour la gestion des utilisateurs et la sécurité. J'ai un AMI de serveur Git + gitolite pour EC2 en cours de test. N'hésitez pas à faire un essai; la documentation est disponible ici:
En utilisant cette approche, vous pouvez avoir un serveur Git central avec des référentiels privés fonctionnant en quelques minutes. Il existe une courbe d'apprentissage pour gitolite et EC2 si vous ne les connaissez pas bien.