Geçenlerde Amazon EC2'ye ubuntu-server kurdum. Git sunucum olarak kullanmak istiyorum, böylece depolarımı saklayabilirim.
Peki, ubuntu sunucusunda git kurulumunun nasıl yapılacağına dair bazı ayrıntılı talimatları nereden bulabilirim? Tüm bu SSH anahtarları ve bunun gibi şeyler, çoklu kullanıcılar vb.
Git sunucusunu aking1012'nin önerdiği şekilde kurmak için eğitimini kullanabilirsiniz siz veya sadece EC2 örneğinizde SSH sunucusunu kurabilirsiniz (muhtemelen akıllıca olacaktır. sabitleyin ve varsayılan bağlantı noktasını değiştirin).
Git, sunucunuzdan bağımsız olarak depoya girebilir ve daha sonra SSH ile uzaktan erişebilirsiniz. Bu yüzden Ubuntu Sunucusunda böyle yönergeler yapmalı:
GIT_DIR=project.git git init
cd project.git
git --bare update-server-info
cp hooks/post-update.sample hooks/post-update
Sonunda sunucunuza SSH'yi kurun:
Sudo apt-get install ssh-server
Şimdi, SSH'yi sabitlemek için yapılandırmalısınız.
Projenizi çevrimiçi hale getirmenin zamanı geldi (geliştirme makinenizde zaten var olan veriler):
git Push ssh://<username>@<remote-git-hostname>/path/to/project.git master
Ve şimdi etrafta klonlamaya başlayabilirsiniz. Geliştirme makinen devam ediyor:
git clone ssh://<username>@<remote-git-hostname>/path/to/dir.git
Bunu Git Git’te mükemmel bir kaynak .
Ve daha güvenli kimlik doğrulaması için ssh anahtarlarınızı oluştururken, SSH kimlik doğrulaması hakkındaki bu makaleyi okuyabilirsiniz.
Tüm Git sunucu kurulumlarım için "şube başına" erişimin güvenlik ayrıntılarına izin veren Gitolite kullanıyorum. Kurulum, uzak bir sunucuda yapıyorsanız, etkileşimli bir komut dosyası çalıştırmak kadar kolaydır. Bu "kurulumu kolay" doğaya ek olarak Natty ve Maverick'te bir paketi de var
Sudo apt-get install gitolite
Bu, Github veya Gitweb gibi bir web arayüzü sağlamaz - ancak Gitolite gibi bir şeyin üzerine bunları kolayca yapılandırabilir ve kurabilirsiniz.
Sevdiğim gitolit . Pro Git kitabında bölüm var ama kitabın tamamını okumanızı tavsiye ederim.
Birden fazla kullanıcı gereksiniminize gelince:
Gitolite, izinleri yalnızca depo ile değil (Gitosis'in yaptığı gibi) değil, aynı zamanda her bir havuzdaki dal veya etiket adlarıyla da belirtmenize olanak sağlar. Başka bir deyişle, belirli kişilerin (veya insan gruplarının) yalnızca belirli “ref” leri (dallar veya etiketler) itebileceğini ancak başkalarını itemeyeceğini belirleyebilirsiniz.
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way amaçlarınıza uyacak şekilde biraz değiştirilebilir ... benzer öğretici http://blog.agdunn.net/?p=277 .
Resmi belgeleri kesinlikle takip edin: https://help.ubuntu.com/community/Git (bölüm Git ve Proje Yönetimi'ni ayarlama )
Benim için en iyi olan çözüm WebDAV'ı kurmaktı.
Sudo a2enmod Sudo dav_fs
Sudo a2enmod dav
/etc/Apache2/sites-available
öğesine yeni bir dosya ekleyin ve onu adlandırın, örneğin, git.yourserver.com
. Düzenleyin ve aşağıdaki satırları ekleyin:
<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
ve dizin repos
içinde idSudo chown www-data /var/www/git.yourserver.com/repos
Sudo htpasswd -c /var/www/git.yourserver.com/password.dav user_login
ve user_login
isimli kullanıcı için şifre girinSudo chown root:www-data /var/www/git.yourserver.com/password.dav
Sudo chmod 640 /var/www/git.yourserver.com/password.dav
Şimdi, Sudo a2ensite git.yourserver.com
ve Sudo service Apache2 restart
.
/var/www/git.yourserver.com/repos
girin ve dizin oluşturun, örneğin, myrepo.git
cd myrepo.git
git --bare init
git update-server-info
Şimdi, uzak sunucunuzdan çıkış yapın ve dosyalarınızı düzenlemek istediğiniz yerel dizine gidin.
git clone http://user_login:[email protected]/myrepo.git
ve sen bitirdin. Taahhütlü değişikliklerinizi sunucuya göndermek istiyorsanız:
git Push Origin master
Sudo htpasswd
kullanarak istediğiniz kadar kullanıcı oluşturabilirsiniz. Sadece daha fazla kullanıcı eklerken -c
anahtarını kullanmamayı unutmayın, çünkü eski dosya silinir.
Ayrıca kullanıcıları ve güvenliği yönetmek için gitolit yaklaşımını seviyorum. Şu anda test edilmekte olan EC2 için Git + gitolit sunucusu AMI var. Bir denemek için çekinmeyin; belgelere buradan ulaşabilirsiniz:
Bu yaklaşımı kullanarak, birkaç dakika içinde çalışan özel depoları olan merkezi bir Git sunucunuz olabilir. Eğer aşina değilseniz, gitolit ve EC2 için bir öğrenme eğrisi vardır.