LDAP ile Gercat'i Tomcat Altına Nasıl Yüklerim?


11

LDAP desteği ile Gercat'i Tomcat altında kurmak için iyi talimatlar bulmaya çalışıyorum. Tercihen bir Windows 2008 sunucusunda yüklü olması gerekir. Ancak, mümkün değilse Linux'u tercih edebilirim.

Gerrit talimatları sadece iskeleye göre kurulumu kapsar:

http://gerrit.googlecode.com/svn/documentation/2.1.3/install-j2ee.html#installation

Bunu farklı ortamlarda kurmak istersem çalışacak çok şey yok.

Birkaç yararlı bağlantı buldum ama kurulumu bir araya getiren hiçbir şey.

http://codeslife.com/2011/06/08/install-gerrit-locally-under-windows/ http://gerrit.googlecode.com/svn/documentation/2.1.7/config-gerrit.html#_a_id_ldap_a_section_ldap http :? //code.google.com/p/gerrit/issues/detail id = 292

Bu deneme yanılma yöntemini her zaman ayarlayabilirim, ancak birisi sorunlar üzerinde çalışmışsa zamandan tasarruf etmeyi tercih ederim.

Yanıtlar:


21

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:

Hizmetler

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:

resim açıklamasını buraya girin

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


çok güzel ve eksiksiz bilgi. <p> msysgit'in varsayılan "Windows için Git" CGI.pm içermiyor, gitweb için nasıl çalışmayı başarıyorsunuz?
larrycai

Bunu bir süre önce çözdüm. Bu sorunun nasıl çözüleceğine dair notlarım var. Yakında burada bir güncelleme yapıp yapamayacağımı göreceğim.
Jason Huntley

Hey Larry, öğreticiyi güncelledim ve GIT.pm sorunu için düzeltmeyi ekledim. Bu gönderiyi yararlı bulursanız lütfen Cevabı onaylayın. Teşekkürler!
Jason Huntley

gitweb CGI olarak tanımladığınız gibi çalışabilir mi? Apache olmadan sarmak için gitweb.bat oluşturdum <p> CGI.pm için, sadece CGI.tar.gz dosyasını indirin ve / usr / lib / perl5 / site_perl içine yükleyin yeterince iyi. <p> öğretici çok tamamlandı, ancak yeni başlayanlar için takip etmek biraz zor ;-)
larrycai

@larrycai, evet Bu dersi bir süre önce yazdım ve aslında Gerrit'in proje belgelerine iyileştirildi ve katkıda bulundu. Hala inceleniyor, ancak onaylandığında bu soruyu güncelleyeceğim. Geri dönüşünüz için teşekkür ederiz. Oh ve evet gitweb kesinlikle Apache üzerinden CGI olarak çalışacak.
Jason Huntley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.