Я вирішив продовжити відповідь на це, оскільки це потрібне громаді Герріт. Наразі не так багато навчальних посібників, що висвітлюють розширені налаштування для Герріта. Я сподіваюся, що це допоможе іншим вивчити практику XP / Agile та змусити Герріта працювати. Це прекрасний інструмент, коли ви пройдете всі найтонші проблеми та налаштування.
Цей підручник із встановлення досить унікальний тим, що обслуговує конкретне середовище:
- Windows 2008 Server
- PostgreSql
- Томат
- LDAP через Active Directory
- Герріт
- msysgit
Перш ніж почати, переконайтеся, що у вашій системі встановлено git. Завантажте останній інструмент командного рядка msysgit для Windows з http://code.google.com/p/msysgit/downloads/list
Не забудьте отримати "Повний інсталятор офіційного Git для Windows".
- Встановіть MSysGit
- Використовуйте параметри за замовчуванням при появі запиту
- Налаштування Git
Якщо ви збираєтесь використовувати версію GitWeb в msysgit, ви помітите деякі проблеми навколо CGI.pm. Я хотів би зазначити виправлення для вирішення цього питання.
Перл, що входить до дистрибутива msysgit, станом на 1.7.8, порушено, http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af . Папка unicore відсутня разом з utf8_heavy.pl та CGI.pm. Ви можете перевірити, перевіривши на Perl модулі:
perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" Ви, мабуть, зіткнетеся з таким винятком:
$ perl -mCGI -mEncode -mFcntl -mFile :: Знайти -mFile :: Базова назва -e "" Неможливо знайти CGI.pm у @INC (@INC містить: /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 не вдався - компіляція перервана.
Якщо вам не вистачає CGI.pm, вам доведеться розгорнути модуль у середовищі msys: вам доведеться отримати їх з дистрибутива 5.8.8 на:
http://strawberryperl.com/releases.html
Файл: полуниця-perl-5.8.8.3.zip
вміст: bin / lib / site /
скопіюйте вміст lib у msysgit / lib / perl5 / 5.8.8 та перезапишіть наявні файли.
Якщо ви використовуєте командний рядок git, додайте свої налаштування глобальної конфігурації до git:
git config --global user.name "Your Name"
git config --global user.email you@corporation.com
git config --global core.autocrlf false
Переконайтеся, що використовувані тут облікові дані відповідають обліковим даних gerrit. Інакше Герріт відхилить ваш запит.
Інструкції щодо встановлення та налаштування Gerrit такі:
- По-перше, увійдіть на сервер, на якому розміщуються поштові адреси, і створіть користувача та базу даних для Герріта
- createuser --username = postgres -A -D -P -E gerrit2
- createdb --username = postgres -E UTF-8 -O gerrit2 reviewdb
- Тепер поверніться до хоста, якщо він різний, для Gerrit і створіть 3 каталоги для розгортання Gerrit
- Створіть базовий каталог встановлення для герріту, бажано узагальненого каталогу для вмісту військової дислокації
- Створіть підкаталог для tomcat
- Створіть конфігураційний каталог для розгортання схеми та конфігурації
- Вміст повинен виглядати приблизно так:
- герріт
- tomcat
- конфігурація
- герит-XX
- Завантажте tomcat з http://tomcat.apache.org/download-60.cgi
- Примітка: Більшість дистрибутивів Linux матиме це у своїх менеджерів оновлень. Приклад: Використовуйте Synaptic на Ubuntu
- Розгорніть установку tomcat в каталог tomcat
- Завантажте останню версію gerrit.war з
http://code.google.com/p/gerrit/downloads/list .
- скопіюйте файл у базовий каталог геррі
- витягнути файл війни в підкаталог gerrit-XX
- CD до базового каталогу герріта та запустіть
java -jar gerrit-2.4-rc0.war
init -d config
- Ця конфігурація включає додатки для LDAP і працює за проксі, не налаштовуйте ці параметри, якщо вони не потрібні.
Виконати:
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 як серверів, ми це налаштуємо пізніше
- Редагувати config \ etc \ gerrit.config
- у розділі gerrit додайте налаштування для conicalWebUrl =
http://review.corporation.com/
- Якщо ваші проекти не відповідають традиційному формату project.git, додайте наступний розділ:
- додайте файл локайт і URL на свій сервер gitweb разом із пов’язаними властивостями
Оновлення 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}
- Якщо ви використовуєте http / https для обслуговування, додайте наступне:
Оновлення gerrit.config:
[download]
scheme = http
- Якщо ви використовуєте LDAP з активним каталогом, вам потрібно буде змінити налаштування, додати додаткові настройки для підтримки AD:
Оновлення 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>
Вам не потрібен роз'єм AJP, якщо ви не маєте наміру на з'єднання з Apache HTTP Server. Я використовую його для завантаження шифрування SSL та управління сертифікатами. Просто видаліть його, якщо не потрібно. Не забудьте змінити свій порт роз'єму HTTP на 80, якщо ви плануєте працювати окремо.
Наведена вище конфігурація призначена для використання з postgres. Якщо ви використовуєте MySQL, вам доведеться замінити ресурс на наступний для 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"
/>
На даний момент ви вже готові налаштувати Gerrit як сервіс та представити систему огляду в Інтернеті.
- По-перше, налаштуйте параметри Tomcat для запуску Герріта як сервісу
- Goto tomcat / bin та редагування service.bat
Параметри jvm встановлюються окремо для послуги nt. Ви повинні змінити файл service.bat, перш ніж встановлювати службу nt. Цей файл знаходиться в каталозі tomcat / bin з іншими сценаріями startup.bat та shutdown. Прокрутіть униз до наступного розділу:
"%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
Змініть цей рядок відповідно до наступного:
"%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
Початкова пам'ять, jvmMs, безумовно, повинна бути встановлена на 512Mb для герта, а розширена, JvmMx, до 1024Mb.
Тепер ви готові розгорнути gerrit як службу під Windows. Просто виконайте наступне:
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>
Перейдіть до свого менеджера сервера та відкрийте вузол Services. Відкрийте властивості для Gerrit і переконайтеся, що ви встановили тип запуску на Автоматичне:
Застосувати та закрити діалог.
Гаразд ... Ми вже закінчили? На жаль, ні, ще лише кілька кроків. Тримайся там.
Тепер ви готові розпочати послугу. Просто виділіть сервіс Gerrit і натисніть на кнопку "Пуск" зліва.
Перегляньте журнали в каталозі tomcat / log. Переконайтесь, що немає невирішених помилок. Якщо у вас є проблеми, можете задати питання тут або в списку розсилки герріт:
http://groups.google.com/group/repo-discuss
Ви повинні мати можливість перейти у веб-переглядач та ввести URL-адресу свого сервера, щоб переглянути Gerrit зараз: http://review.corporation.com:8080
Вам буде запропоновано ввести відкритий ключ ssh. Це необхідно лише в тому випадку, якщо ви плануєте використовувати Git / Gerrit через ssh замість HTTP. Я пішов вперед і налаштував це, тому що це хороший варіант.
Налаштування SSH
Створіть ключ ssh для доступу:
Administrator @ SERVER ~ / test $ ssh-keygen -t rsa
Зареєструйте новий обліковий запис у Gerrit через веб-інтерфейс з електронною адресою на ваш вибір. Перший користувач, який увійде та зареєструє акаунт, буде автоматично розміщений у повністю привілейованій групі адміністраторів, дозволяючи керувати сервером через Інтернет та через SSH. Наступні користувачі автоматично будуть зареєстровані як непривілейовані користувачі.
Після входу в систему як свого користувача ви знайдете невеликого майстра для початку роботи. Майстер допомагає заповнити:
- Справжнє ім’я (видиме ім’я в Герріт)
- Зареєструйте свій електронний лист (його потрібно підтвердити пізніше)
- Виберіть ім'я користувача, з яким слід спілкуватися з Геррітом через ssh + git
Сервер запитає вас про відкритий ключ RSA. Це ключ, який ми створили вище, і настав час переконатися, що Джерріт знає про наш новий ключ і зможе визначити нас ним.
user @ host: ~ $ cat .ssh / id_rsa.pub
Налаштуйте доступ HTTP лише для зареєстрованих користувачів, якщо ваш проект не відкритий для загального користування:
Створіть пароль HTTP
Незважаючи на те, що ви налаштували свій власний логін, вам все одно доведеться генерувати пароль для герріта до сервера через http / https. Перейдіть у свої Налаштування-> Конфігурація пароля HTTP та натисніть «Створити пароль». Використовуйте цей пароль для всіх git операцій над http (ими).
Тепер ми можемо протестувати Герріта через HTTP. Ви повинні мати можливість клонувати будь-які проекти, наявні у сховищі, на яке ви посилаєтесь у конфігурації Gerrit.
Тест при роботі з клоном
Administrator@SERVER ~/test
$ git clone https://review.corporation.com/sandbox
Перевірте свій обліковий запис 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://jhuntley@review.corporation.com:29418/REPOSITORY_NAME.g
it
Connection to localhost closed.
Клоніруйте проект від Герріта через SSH:
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.
Якщо ви досі не відмовилися, можете розслабитися, вам слід знайти себе в роботі з системою перевірки коду Gerrit Code, розміщеною на сервері Windows 2008 :) Це не так часто, як налаштування, і, як ви можете сказати, гарантує все додаткове кроки. Однак деякі з нас мають обмежені ресурси і можуть використовувати лише те, що передбачено. Я сподіваюся, що цей підручник допомагає тим, хто прагне запустити Герріта в подібному середовищі. Ви повинні бути готові зараз почати використовувати Герріт! Насолоджуйтесь!
Для отримання додаткової інформації щодо використання Gerrit, зверніться до посібника користувача проекту Gerrit:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Дякую Шаун Пірс за допомогу на IRC!
Для подальшого ознайомлення
Підручник було перетворено в документацію для проекту Герріт. Для тих, хто цікавиться, і потрібна хороша довідка. Будь ласка, дивіться запит на виправлення тут:
https://gerrit-review.googlesource.com/#/c/37072