Gerrit Topluluğu için bir çeşit ihtiyaç olduğu için buna bir cevap vermeye karar verdim. Şu anda, Gerrit için gelişmiş kurulumları kapsayan çok fazla öğretici yok. Bunun başkalarının XP / Agile uygulamalarını keşfetmesine ve Gerrit'i çalıştırmasına yardımcı olacağını umuyorum. Tüm ince kurulum zorluklarını ve ayrıntılarını aştığınızda harika bir araçtır.
Bu yükleme öğreticisi, belirli bir ortama hizmet etmesi bakımından oldukça benzersizdir:
- Windows 2008 Sunucusu
- PostgreSQL
- erkek kedi
- Active Directory üzerinden LDAP
- Gerrit
- msysgit
Başlamadan önce sisteminizde git'in kurulu olduğundan emin olun. Http://code.google.com/p/msysgit/downloads/list adresinden en son msysgit komut satırı aracını indirin
"Resmi Git Windows için tam yükleyiciyi" aldığınızdan emin olun.
- MSysGit'i yükleyin
- İstendiğinde varsayılanları kullan
- Git'i Yapılandırma
GitWeb sürümünü msysgit içinde kullanmayı planlıyorsanız, CGI.pm ile ilgili bazı sorunlar göreceksiniz. Bu sorunu çözmek için bir düzeltmeden bahsetmek istiyorum.
1.7.8 itibariyle msysgit dağıtımına dahil edilen perl, http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af bozuldu . Unicore klasörü utf8_heavy.pl ve CGI.pm ile birlikte eksik. Perl modüllerini kontrol ederek doğrulayabilirsiniz:
perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Muhtemelen aşağıdaki istisna ile karşılaşacaksınız:
$ perl -mCGI -mEncode -mFcntl -mFile :: Bul -mFile :: Basename -e "" @INC içinde CGI.pm bulunamıyor (@INC şunları içerir: /usr/lib/perl5/5.8.8/msys / usr / lib / p erl5 / 5.8.8 /usr/lib/perl5/site_perl/5.8.8/msys /usr/lib/perl5/site_perl/5.8.8 / u sr / lib / perl5 / site_perl.). BEGIN başarısız oldu - derleme iptal edildi.
CGI.pm eksikse, modülü msys ortamına dağıtmanız gerekir: Bunları 5.8.8 dağıtımından almanız gerekir:
http://strawberryperl.com/releases.html
Dosya: strawberry-perl-5.8.8.3.zip
içindekiler: bin / lib / site /
lib içeriğini msysgit / lib / perl5 / 5.8.8 içine kopyalayın ve mevcut dosyaların üzerine yazın.
Git komutunu kullanıyorsanız, global yapılandırma ayarlarınızı git'e ekleyin:
git config --global user.name "Your Name"
git config --global user.email you@corporation.com
git config --global core.autocrlf false
Burada kullanılan kimlik bilgilerinin gerrit kimlik bilgileriyle eşleştiğinden emin olun. Aksi takdirde gerrit isteğinizi reddedecektir.
Gerrit kurulum ve konfigürasyon talimatları aşağıdaki gibidir:
- İlk olarak, postgres barındıran sunucuya giriş yapın ve Gerrit için bir kullanıcı ve veritabanı oluşturun
- createuser - kullanıcı adı = postgres -A -D -P -E gerrit2
- createdb - kullanıcı adı = postgres -E UTF-8 -O gerrit2 reviewdb
- Şimdi, Gerrit için farklıysa, ana bilgisayara geri dönün ve Gerrit'i dağıtmak için 3 dizin oluşturun
- Gerrit için bir temel kurulum dizini, tercihen savaş dağıtım içeriği için sürümlendirilmiş bir dizin oluşturun
- Tomcat için bir alt dizin oluşturun
- Şemayı ve yapılandırmayı dağıtmak için bir yapılandırma dizini oluşturma
- İçerik şu şekilde görünmelidir:
- gerrit
- erkek kedi
- yapılandırma
- gerrit-XX
- Tomcat'i http://tomcat.apache.org/download-60.cgi adresinden indirin.
- Not: Çoğu Linux Dağıtımı bunu güncelleme yöneticilerinden alabilir. Örnek: Ubuntu'da Synaptic kullanın
- Tomcat kurulumunuzu tomcat dizinine dağıtın
- En son gerrit.war dosyasını http://code.google.com/p/gerrit/downloads/list adresinden indirin
.
- dosyayı temel gerrit dizinine kopyala
- savaş dosyasını gerrit-XX alt dizinine çıkarın
- CD gerrit temel dizinine çalıştırın ve çalıştırın
java -jar gerrit-2.4-rc0.war
init -d config
- Bu yapılandırma, LDAP için ekstralar içerir ve bir proxy'nin arkasında çalışır; gerekirse bu seçenekleri yapılandırmayın.
Yürütme:
C:\your_path\gerrit>java -jar gerrit-2.4-rc0.war init -d config
*** Gerrit Code Review 2.4-rc0
***
Create 'C:\your_path\gitserver\gerrit\config' [Y/n]? Y
*** Git Repositories
***
Location of Git repositories [git]: C:\your_path\gitserver\repository\ha
*** SQL Database
***
Database server type [H2/?]: postgresql
Server hostname [localhost]: database.corp.local
Server port [(POSTGRESQL default)]:
Database name [reviewdb]:
Database username [Administrator]: gerrit2
gerrit2's password :
confirm password :
*** User Authentication
***
Authentication method [OPENID/?]: LDAP
LDAP server [ldap://localhost]: ldaps://ldap.corp.local:
636
LDAP username : CN=Administrator,CN=Users,DC=corp,DC=local
CN=Administrator,CN=Users,DC=corp,DC=local's password :
confirm password :
Account BaseDN [DC=corp,DC=local:636]: CN=Users,DC=corp,DC=l
ocal
Group BaseDN [CN=Users,DC=corp,DC=local]:
*** Email Delivery
***
SMTP server hostname [localhost]: smtp.corporation.com
SMTP server port [(default)]: 465
SMTP encryption [NONE/?]: SSL
SMTP username [Administrator]: build@corporation.com
build@corporation.com's password :
confirm password :
*** Container Process
***
Run as [Administrator]:
Java runtime [C:\Program Files\Java\jre6]:
Copy gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war [Y/n]?
Copying gerrit.war to C:\your_path\gitserver\gerrit\config\bin\gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
If available, Gerrit can take advantage of features
in the library, but will also function without it.
Download and install it now [Y/n]? n
Generating SSH host key ... rsa(simple)... done
*** HTTP Daemon
***
Behind reverse proxy [y/N]?
Use SSL (https://) [y/N]?
Listen on address [*]:
Listen on port [8080]:
Initialized C:\your_path\gitserver\gerrit\config
Automatic startup not supported on Win32.
- Gerrit'i sunucu olarak kurma konusunda endişelenmeyin, bunu daha sonra yapılandıracağız
- Config \ etc \ gerrit.config dosyasını düzenle
- gerrit bölümünün altına, conicalWebUrl = http://review.corporation.com/ için bir ayar ekleyin
- Projeleriniz geleneksel project.git biçimini takip etmiyorsa, aşağıdaki bölümü ekleyin:
- ilişkili özellikler ile birlikte dosya konumunu ve url'yi gitweb sunucunuza ekleyin
gerrit.config Güncellemesi:
[gitweb]
cgi = C:\\path to msysgit\\Git\\share\\gitweb\\gitweb.cgi
url = https://gitweb.corporation.com
type = custom
project = ?p=${project};a=summary
revision = ?p=${project};a=commit;h=${commit}
branch = ?p=${project};a=shortlog;h=${branch}
filehistory = ?p=${project};a=history;hb=${branch};f=${file}
- Sunum yapmak için http / https kullanıyorsanız aşağıdakileri ekleyin:
gerrit.config Güncellemesi:
[download]
scheme = http
- Etkin dizinde LDAP kullanıyorsanız, ayarlarınızı değiştirmeniz gerekir ve AD'yi desteklemek için ek ayarlar ekleyin:
gerrit.config Güncellemesi:
[ldap]
sslVerify = true
server = ldaps://ldap.corp.local:636
username = CN=Administrator,CN=Users,DC=corp,DC=local
accountBase = CN=Users,DC=corp,DC=local
accountPattern = (&(objectClass=person)(sAMAccountName=${username}))
accountFullName = displayName
accountEmailAddress = mail
accountSshUserName = sAMAccountName
groupBase = CN=Users,DC=corp,DC=local
groupMemberPattern = (sAMAccountName=${username})
groupName = cn
server.xml:
<Server port="8006" shutdown="SHUTDOWN">
<Service name="Catalina">
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="true">
<Context path="" docBase="C:\your_path\gitserver\gerrit\gerrit-2.4" debug="0" reloadable="false">
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.postgresql.Driver"
password="secret"
url="dbc:postgresql://yourPsqlServer:5432/reviewdb"
/>
</Context>
</Host>
</Engine>
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"/>
<Connector port="8011" protocol="AJP/1.3" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
disableUploadTimeout="true" enableLookups="false"
acceptCount="100" URIEncoding="UTF-8" />
</Service>
</Server>
Apache HTTP Sunucusu ile proxy yapmak istemiyorsanız AJP bağlayıcısına ihtiyacınız yoktur. SSL şifrelemesini boşaltmak ve sertifikaları yönetmek için kullanıyorum. Gerekmiyorsa çıkarın. Tek başına çalıştırmak istiyorsanız, HTTP bağlayıcı bağlantı noktanızı 80 olarak değiştirdiğinizden emin olun.
Yukarıdaki yapılandırma postgres ile kullanım içindir. MySQL kullanıyorsanız, kaynağı MySQL için aşağıdakilerle değiştirmeniz gerekecektir:
server.xml:
<Resource
name="jdbc/ReviewDb"
type="javax.sql.DataSource"
username="gerrit2"
driverClassName="org.gjt.mm.mysql.Driver"
password="secret"
url="jdbc:mysql://yourMsqlServer/reviewdb?autoReconnect=true"
/>
Bu noktada, artık Gerrit'i bir hizmet olarak yapılandırmaya ve inceleme sistemini çevrimiçi hale getirmeye hazırsınız.
- İlk olarak, Gerrit'i Hizmet Olarak Çalıştırmak İçin Tomcat Ayarlarını Değiştirin
- Tomcat / bin'e gidin ve service.bat dosyasını düzenleyin
Jvm seçenekleri nt servisi için ayrı ayrı ayarlanır. Nt hizmetini yüklemeden önce service.bat dosyanızı değiştirmeniz gerekir. Bu dosya diğer startup.bat ve kapatma komut dosyalarıyla tomcat / bin dizininde bulunur. Aşağıdaki bölüme ilerleyin:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \--JvmMs 128 \--JvmMx 256
Bu satırı aşağıdakilerle eşleşecek şekilde değiştirin:
"%EXECUTABLE%" //US//%SERVICE_NAME% \++JvmOptions "-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties" \++JvmOptions="-XX:MaxPermSize=256m" \++JvmOptions="-XX:+CMSClassUnloadingEnabled" \++JvmOptions="-XX:+CMSPermGenSweepingEnabled" \--JvmMs 512 \--JvmMx 1024
Başlangıç belleği, jvmM'ler, gerrit için kesinlikle 512Mb olarak ayarlanmalı ve JvmMx, 1024Mb'ye genişletilmelidir.
Artık gerrit'i pencerelerin altında bir hizmet olarak dağıtmaya hazırsınız. Sadece aşağıdakileri yürütün:
C:\your_path\gitserver\gerrit\tomcat\bin>service install gerrit
Installing the service 'gerrit' ...
Using CATALINA_HOME: "C:\your_path\gitserver\gerrit\tomcat"
Using CATALINA_BASE: "C:\your_path\gitserver\gerrit\tomcat"
Using JAVA_HOME: "C:\Program Files\Java\jdk1.6.0_31"
Using JVM: "C:\Program Files\Java\jdk1.6.0_31\jre\bin\server\jvm.dl
l"
The service 'gerrit' has been installed.
C:\your_path\gitserver\gerrit\tomcat\bin>
Sunucu yöneticinize gidin ve Hizmetler düğümünü açın. Gerrit özelliklerini açın ve başlangıç türünü Otomatik olarak ayarladığınızdan emin olun:
Uygula ve Kapat İletişim Kutusu.
Tamam ... Henüz bitirmedik mi? Ne yazık ki hayır, sadece birkaç adım kaldı. Pes etme.
Artık hizmeti başlatmaya hazırsınız. Gerrit hizmetini vurgulayın ve soldaki Başlat seçeneğini tıklayın.
Tomcat / log dizininin altındaki günlükleri inceleyin. Bekleyen hata olmadığından emin olun. Sorun yaşarsanız, burada veya gerrit posta listesinde sorular sorabilirsiniz:
http://groups.google.com/group/repo-discuss
Gerrit'i şimdi görüntülemek için tarayıcınıza gidip sunucunuzun URL'sini girebilmeniz gerekir: http://review.corporation.com:8080
Ssh genel anahtarınızı girmeniz istenir. Bu yalnızca Git / Gerrit'i HTTP yerine ssh üzerinden kullanmayı düşünüyorsanız gereklidir. Devam ettim ve ayarladım çünkü sahip olmak iyi bir seçenek.
SSH'yi yapılandırın
Erişim için bir ssh anahtarı oluşturun:
Yönetici @ SERVER ~ / test $ ssh-keygen -t rsa
İstediğiniz e-posta adresiyle web arayüzü üzerinden Gerrit'te yeni bir hesap açın. İlk oturum açan ve hesap açan ilk kullanıcı otomatik olarak tamamen ayrıcalıklı Administrators grubuna yerleştirilir ve böylece web üzerinden ve SSH üzerinden sunucu yönetimine izin verilir. Sonraki kullanıcılar otomatik olarak ayrıcalıksız kullanıcılar olarak kaydedilecektir.
Kullanıcı olarak oturum açtıktan sonra, başlamanız için küçük bir sihirbaz bulacaksınız. Sihirbaz aşağıdakileri doldurmanıza yardımcı olur:
- Gerçek ad (Gerrit'te görünür ad)
- E-postanızı kaydedin (daha sonra onaylanmalıdır)
- Ssh + git üzerinden Gerrit ile iletişim kurmak için bir kullanıcı adı seçin
Sunucu sizden bir RSA ortak anahtarı isteyecektir. Yukarıda ürettiğimiz anahtar budur ve Gerrit'in yeni anahtarımızı bilmesini ve bizi bu anahtarla tanımlayabilmesini sağlama zamanı.
kullanıcı @ host: ~ $ cat .ssh / id_rsa.pub
Projeniz herkese açık değilse, yalnızca kayıtlı kullanıcılar için HTTP erişimini yapılandırın:
HTTP Şifresi Oluşturun
Kendi giriş bilgilerinizi yapılandırmış olmanıza rağmen, http / https üzerinden sunucuya gerrit için bir şifre oluşturmanız gerekir. Ayarlar-> HTTP Parolası yapılandırmanıza gidin ve 'Parola Oluştur'u tıklayın. Http (s) üzerindeki tüm git işlemleri için bu şifreyi kullanın.
Şimdi Gerrit'i HTTP üzerinden test edebiliriz. Gerrit yapılandırmasında referans verdiğiniz havuzda bulunan tüm projeleri klonlayabilmeniz gerekir.
Klon işlemi ile test
Administrator@SERVER ~/test
$ git clone https://review.corporation.com/sandbox
Ssh hesabınızı test edin
Administrator@SERVER~/test
$ ssh jhuntley@localhost -p 29418
**** Welcome to Gerrit Code Review ****
Hi Jason Huntley, you have successfully connected over SSH.
Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:
git clone ssh://jhuntley@review.corporation.com:29418/REPOSITORY_NAME.g
it
Connection to localhost closed.
Gerrit'ten bir projeyi SSH üzerinden klonlayın:
Administrator@SERVER~/test
$ git clone ssh://jhuntley@127.0.0.1:29418/sandbox
Cloning into 'sandbox'...
remote: Counting objects: 183, done
remote: Finding sources: 100% (183/183)
remote: Total 183 (delta 0), reused 0 (delta 0)Receiving objects: 50% (92/183)
Receiving objects: 52% (96/183)
Receiving objects: 100% (183/183), 23.76 KiB, done.
Şimdiye kadar vazgeçmediyseniz, rahatlayabilirsiniz, kendinizi bir Windows 2008 Sunucusu tarafından barındırılan çalışan bir Gerrit Kod İnceleme sistemi ile bulmalısınız :) Bir kurulum kadar yaygın değildir ve anlayabileceğiniz gibi, tüm ekstraları garanti eder. adımları tekrarlayın. Bununla birlikte, bazılarımız sınırlı kaynaklara sahiptir ve sadece sağlananları kullanabiliriz. Umarım bu eğitim Gerrit'i benzer bir ortamda çalıştırmak isteyenlere yardımcı olur. Gerrit'i kullanmaya başlamak için şimdi hazır olmalısınız! Zevk almak!
Gerrit kullanımı hakkında daha fazla bilgi için lütfen Gerrit projesinin kullanıcı kılavuzuna başvurun:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Shawn Pierce IRC yardımı için teşekkür ederiz !
Gelecekte referans olması için
Eğitim Gerrit projesinin belgelerine dönüştürüldü. İlgilenenler ve iyi bir referansa ihtiyaç duyanlar için. Lütfen yama isteğine buradan bakın:
https://gerrit-review.googlesource.com/#/c/37072