Я пытаюсь найти хорошие инструкции по установке Gerrit под Tomcat с поддержкой LDAP. Мне нужно, чтобы это было установлено на Windows 2008 Server, желательно. Однако я могу выбрать Linux, если это невозможно.
Инструкции Gerrit касаются только установки под пристанью:
http://gerrit.googlecode.com/svn/documentation/2.1.3/install-j2ee.html#installation
Не над чем поработать, если я хочу настроить это в разных средах.
Я нашел несколько полезных ссылок, но ничего не объединяло всю установку.
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
Я всегда могу настроить это методом проб и ошибок, но я бы предпочел сэкономить время, если кто-то уже проработал проблемы.
Я решил ответить на этот вопрос, так как он нужен сообществу Gerrit. В настоящее время не так много руководств по расширенным настройкам Gerrit. Я надеюсь, что это поможет другим изучить методы XP / Agile и запустить Gerrit. Это отличный инструмент, если вы преодолеете все тонкие проблемы настройки и детали.
Это руководство по установке довольно уникально тем, что предназначено для конкретной среды:
Прежде чем начать, убедитесь, что в вашей системе установлен git. Загрузите последнюю версию инструмента командной строки msysgit для Windows из http://code.google.com/p/msysgit/downloads/list
Убедитесь, что у вас есть «Полный установщик официального Git для Windows».
Если вы собираетесь использовать версию GitWeb в msysgit, вы заметите некоторые проблемы с CGI.pm. Я хотел бы упомянуть исправление для решения этой проблемы.
Perl, включенный в дистрибутив 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 :: Find -mFile :: Basename -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
Файл: Strawberry-perl-5.8.8.3.zip
содержимое: bin / lib / site /
скопируйте содержимое библиотеки в 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 отклонит ваш запрос.
Инструкции по установке и настройке Gerrit следующие:
java -jar gerrit-2.4-rc0.war
init -d config
Выполнить:
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 Обновление:
[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}
gerrit.config Обновление:
[download]
scheme = http
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 не нужен, если вы не собираетесь проксировать с помощью HTTP-сервера Apache. Я использую его для разгрузки 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 как услугу и подключить систему проверки.
Параметры jvm устанавливаются отдельно для службы NT. Перед установкой службы NT необходимо изменить файл service.bat. Этот файл находится в каталоге tomcat / bin вместе с другими сценариями startup.bat и завершения работы. Прокрутите вниз до следующего раздела:
"%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, определенно должна быть установлена на 512 МБ для gerrit и расширена, JvmMx, на 1024 МБ.
Теперь вы готовы развернуть 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. Убедитесь, что нет выдающихся ошибок. Если у вас возникнут проблемы, вы можете задать вопросы здесь или в списке рассылки gerrit: http://groups.google.com/group/repo-discuss
Вы должны иметь возможность перейти в свой браузер и ввести URL-адрес своего сервера, чтобы просмотреть Gerrit сейчас: http://review.corporation.com:8080
Вам будет предложено ввести открытый ключ ssh. Это необходимо только в том случае, если вы собираетесь использовать Git / Gerrit через ssh вместо HTTP. Я пошел дальше и настроил его, потому что это хороший вариант.
Настроить SSH
Сгенерируйте ssh-ключ для доступа:
Администратор @ СЕРВЕР ~ / test $ ssh-keygen -t rsa
Зарегистрируйте новую учетную запись в Gerrit через веб-интерфейс с выбранным вами адресом электронной почты. Первый пользователь, который войдет в систему и зарегистрирует учетную запись, будет автоматически помещен в группу администраторов с полным доступом, что позволит управлять сервером через Интернет и через SSH. Последующие пользователи будут автоматически зарегистрированы как непривилегированные пользователи.
После входа в систему в качестве пользователя вы найдете небольшого мастера, который поможет вам начать работу. Мастер поможет вам заполнить:
Сервер запросит у вас открытый ключ RSA. Это ключ, который мы создали выше, и пора убедиться, что Геррит знает о нашем новом ключе и может идентифицировать нас по нему.
пользователь @ хост: ~ $ cat .ssh / id_rsa.pub
Настройте HTTP-доступ только для зарегистрированных пользователей, если ваш проект не открыт для публики:
Создать пароль HTTP
Несмотря на то, что вы настроили свой собственный логин, вам все равно нужно сгенерировать пароль для сервера gerrit через http / https. Перейдите в Настройки-> Конфигурация пароля HTTP и нажмите «Сгенерировать пароль». Используйте этот пароль для всех операций git через http (s).
Теперь мы можем протестировать Gerrit через 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.
Клонируйте проект от Gerrit через 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 Review, размещенной на Windows 2008 Server :) Это не так распространено, как установка, и, как вы можете сказать, требует всех дополнительных шаги. Однако у некоторых из нас ограниченные ресурсы, и они могут использовать только то, что предоставлено. Я надеюсь, что это руководство поможет тем, кто хочет запустить Gerrit в аналогичной среде. Теперь вы должны быть готовы начать использовать Gerrit! Наслаждайтесь!
Для получения дополнительной информации об использовании Gerrit обратитесь к руководству пользователя проекта Gerrit:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Спасибо Шон Пирс за помощь по IRC!
Учебник преобразован в документацию для проекта Gerrit. Для заинтересованных и нужна хорошая ссылка. Пожалуйста, смотрите запрос на исправление здесь: