Postanowiłem odpowiedzieć na to pytanie, ponieważ jest to trochę potrzebne społeczności Gerrit. Obecnie nie ma zbyt wielu samouczków obejmujących zaawansowane ustawienia Gerrit. Mam nadzieję, że to pomoże innym odkryć praktyki XP / Agile i uruchomić Gerrit. To świetne narzędzie, gdy miniesz wszystkie subtelne wyzwania i szczegóły konfiguracji.
Ten samouczek instalacji jest raczej wyjątkowy, ponieważ służy do określonego środowiska:
- Windows 2008 Server
- PostgreSql
- Kocur
- LDAP przez Active Directory
- Gerrit
- msysgit
Zanim zaczniesz, upewnij się, że masz zainstalowany git w systemie. Pobierz najnowsze narzędzie wiersza polecenia msysgit dla systemu Windows z http://code.google.com/p/msysgit/downloads/list
Upewnij się, że masz „Pełny instalator oficjalnego Git dla Windows”.
- Zainstaluj MSysGit
- Po wyświetleniu monitu użyj ustawień domyślnych
- Skonfiguruj Git
Jeśli zamierzasz używać wersji GitWeb w msysgit, zauważysz pewne problemy związane z CGI.pm. Chciałbym wspomnieć o rozwiązaniu problemu.
Perl dołączony do dystrybucji msysgit od 1.7.8 jest uszkodzony, http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af . Brakuje folderu Unicore wraz z utf8_heavy.pl i CGI.pm. Możesz to sprawdzić, sprawdzając moduły perla:
perl -mCGI -mEncode -mFcntl -mFile :: Znajdź -mFile :: Basename -e "" Prawdopodobnie wystąpi następujący wyjątek:
$ perl -mCGI -mEncode -mFcntl -mFile :: Znajdź -mFile :: Basename -e "" Nie można znaleźć CGI.pm w @INC (@INC zawiera: /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 nie powiodło się - kompilacja przerwana.
Jeśli brakuje Ci CGI.pm, musisz wdrożyć moduł w środowisku msys: Musisz pobrać je z dystrybucji 5.8.8:
http://strawberryperl.com/releases.html
Plik: strawberry-perl-5.8.8.3.zip
zawartość: bin / lib / site /
skopiuj zawartość lib do msysgit / lib / perl5 / 5.8.8 i zastąp istniejące pliki.
Jeśli używasz git z wiersza poleceń, dodaj swoje globalne ustawienia konfiguracji do git:
git config --global user.name "Your Name"
git config --global user.email [email protected]
git config --global core.autocrlf false
Upewnij się, że używane tutaj poświadczenia są zgodne z poświadczeniami w gerrit. W przeciwnym razie gerrit odrzuci twoją prośbę.
Instrukcje dotyczące instalowania i konfigurowania Gerrit są następujące:
- Najpierw zaloguj się na serwerze obsługującym Postgres i utwórz użytkownika i bazę danych dla Gerrit
- createuser --username = postgres -A -D -P -E gerrit2
- utworzonyb - nazwa_użytkownika = postgres -E UTF-8 -O gerrit2 reviewdb
- Teraz przełącz się z powrotem na hosta, jeśli jest inny, dla Gerrit i utwórz 3 katalogi do wdrożenia Gerrit
- Utwórz podstawowy katalog instalacyjny dla gerrit, najlepiej katalog z wersją dla zawartości związanej z wdrażaniem wojny
- Utwórz podkatalog dla tomcat
- Utwórz katalog konfiguracji do wdrożenia schematu i konfiguracji
- Treść powinna wyglądać następująco:
- gerrit
- Pobierz tomcat ze strony http://tomcat.apache.org/download-60.cgi
- Uwaga: większość dystrybucji Linuksa będzie dostępna w swoich menedżerach aktualizacji. Przykład: Użyj Synaptic na Ubuntu
- Wdróż instalację tomcat w katalogu tomcat
- Pobierz najnowszą wersję gerrit.war ze strony
http://code.google.com/p/gerrit/downloads/list .
- skopiuj plik do podstawowego katalogu gerrit
- rozpakuj plik wojny do podkatalogu gerrit-XX
- CD do katalogu podstawowego gerrit i uruchom
java -jar gerrit-2.4-rc0.war
init -d config
- Ta konfiguracja obejmuje dodatki do LDAP i działa za proxy, nie konfiguruj tych opcji, jeśli nie są potrzebne.
Wykonać:
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]: [email protected]
[email protected]'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.
- Nie martw się o skonfigurowanie Gerrit jako serwera, skonfigurujemy to później
- Edytuj config \ etc \ gerrit.config
- w sekcji gerrit dodaj ustawienie dla conicalWebUrl =
http://review.corporation.com/
- Jeśli twoje projekty nie są zgodne z tradycyjnym formatem project.git, dodaj następującą sekcję:
- dodaj lokalizację pliku i adres URL do serwera gitweb wraz z powiązanymi właściwościami
Aktualizacja gerrit.config:
[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}
- Jeśli używasz http / https do wyświetlenia, dodaj następujące:
Aktualizacja gerrit.config:
[download]
scheme = http
- Jeśli korzystasz z LDAP z Active Directory, musisz dostosować swoje ustawienia, dodać dodatkowe ustawienia do obsługi AD:
Aktualizacja gerrit.config:
[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>
Nie potrzebujesz konektora AJP, chyba że zamierzasz korzystać z serwera proxy Apache HTTP Server. Używam go do odciążania szyfrowania SSL i zarządzania certyfikatami. Wystarczy go usunąć, jeśli nie jest potrzebny. Pamiętaj, aby zmienić port konektora HTTP na 80, jeśli zamierzasz działać autonomicznie.
Powyższa konfiguracja jest przeznaczona do użytku z Postgres. Jeśli używasz MySQL, będziesz musiał zastąpić zasób następującym kodem MySQL:
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"
/>
W tym momencie możesz teraz skonfigurować Gerrit jako usługę i przełączyć system recenzji w tryb online.
- Najpierw popraw ustawienia Tomcat pod kątem uruchamiania Gerrit jako usługi
- Przejdź do tomcat / bin i edytuj service.bat
Opcje jvm są ustawiane osobno dla usługi nt. Musisz zmodyfikować plik service.bat przed zainstalowaniem usługi nt. Ten plik znajduje się w katalogu tomcat / bin wraz z innymi skryptami startup.bat i zamykania systemu. Przewiń w dół do następującej sekcji:
"%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
Zmodyfikuj ten wiersz, aby dopasować do następujących:
"%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
Początkowa pamięć, jvmM, powinna zdecydowanie być ustawiona na 512 Mb dla gerrit i rozszerzona, JvmMx, na 1024 Mb.
Teraz możesz wdrożyć gerrit jako usługę w systemie Windows. Po prostu wykonaj następujące czynności:
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>
Przejdź do menedżera serwera i otwórz węzeł Usługi. Otwórz właściwości Gerrit i upewnij się, że ustawiłeś typ uruchamiania na Automatyczny:
Zastosuj i zamknij okno dialogowe.
OK ... Czy już skończyliśmy? Niestety nie, zostało jeszcze tylko kilka kroków. Powieś tam.
Teraz możesz rozpocząć usługę. Po prostu podświetl usługę Gerrit i kliknij opcję Start po lewej stronie.
Przejrzyj dzienniki w katalogu tomcat / log. Upewnij się, że nie ma zaległych błędów. Jeśli masz problemy, możesz zadawać pytania tutaj lub na liście mailingowej gerrit:
http://groups.google.com/group/repo-discuss
Powinieneś mieć możliwość przejścia do przeglądarki i wprowadzenia adresu URL serwera, aby wyświetlić teraz Gerrit: http://review.corporation.com:8080
Zostaniesz poproszony o podanie klucza publicznego ssh. Jest to konieczne tylko, jeśli zamierzasz używać Git / Gerrit przez ssh zamiast HTTP. Poszedłem i ustawiłem to, ponieważ jest to dobra opcja.
Skonfiguruj SSH
Wygeneruj klucz ssh dla dostępu:
Administrator @ SERWER ~ / test $ ssh-keygen -t rsa
Zarejestruj nowe konto w Gerrit za pośrednictwem interfejsu internetowego z wybranym adresem e-mail. Pierwszy użytkownik, który zaloguje się i zarejestruje konto, zostanie automatycznie umieszczony w pełni uprzywilejowanej grupie Administratorzy, umożliwiając zarządzanie serwerami przez Internet i SSH. Kolejni użytkownicy zostaną automatycznie zarejestrowani jako użytkownicy nieuprzywilejowani.
Po zalogowaniu się jako użytkownik znajdziesz małego kreatora, aby zacząć. Kreator pomaga wypełnić:
- Prawdziwe imię (widoczna nazwa w Gerrit)
- Zarejestruj swój adres e-mail (należy to potwierdzić później)
- Wybierz nazwę użytkownika, z którą chcesz się komunikować z Gerrit przez ssh + git
Serwer poprosi o klucz publiczny RSA. To klucz, który wygenerowaliśmy powyżej i nadszedł czas, aby upewnić się, że Gerrit wie o naszym nowym kluczu i może nas zidentyfikować.
użytkownik @ host: ~ $ cat .ssh / id_rsa.pub
Skonfiguruj dostęp HTTP tylko dla zarejestrowanych użytkowników, chyba że Twój projekt jest otwarty dla publiczności:
Wygeneruj hasło HTTP
Pomimo skonfigurowania własnego loginu, nadal musisz wygenerować hasło do gerrit na serwer za pośrednictwem http / https. Przejdź do Ustawień-> Konfiguracja hasła HTTP i kliknij „Wygeneruj hasło”. Użyj tego hasła do wszystkich operacji git na http (s).
Teraz możemy przetestować Gerrit przez HTTP. Powinieneś być w stanie klonować wszelkie projekty istniejące w repozytorium, do którego odwołujesz się w konfiguracji Gerrit.
Testuj za pomocą operacji klonowania
Administrator@SERVER ~/test
$ git clone https://review.corporation.com/sandbox
Przetestuj swoje konto ssh
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://[email protected]:29418/REPOSITORY_NAME.g
it
Connection to localhost closed.
Sklonuj projekt z Gerrit za pośrednictwem SSH:
Administrator@SERVER~/test
$ git clone ssh://[email protected]: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.
Jeśli do tej pory się nie poddałeś, możesz się zrelaksować, powinieneś znaleźć działający system Gerrit Code Review obsługiwany przez system Windows 2008 Server :) Nie jest tak powszechny jak konfiguracja i jak możesz powiedzieć, gwarantuje wszystkie dodatkowe kroki. Jednak niektórzy z nas mają ograniczone zasoby i mogą korzystać tylko z tego, co zostało dostarczone. Mam nadzieję, że ten samouczek pomoże tym, którzy chcą uruchomić Gerrit w podobnym środowisku. Powinieneś być teraz gotowy, aby zacząć korzystać z Gerrit! Cieszyć się!
Aby uzyskać dodatkowe informacje dotyczące korzystania z Gerrit, zapoznaj się z instrukcją obsługi projektu Gerrit:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Dziękujemy Shawn Pierce za pomoc w IRC!
Dla przyszłego odniesienia
Samouczek został przekonwertowany na dokumentację projektu Gerrit. Dla zainteresowanych i potrzebujących dobrej referencji. Zobacz prośbę o łatkę tutaj:
https://gerrit-review.googlesource.com/#/c/37072