После того, как слишком много времени потратило спотыкание вокруг, я наконец обнаружил причину своей проблемы. Короче говоря, я получал "Разрешение, отклоненное" для моих пользователей неадминистратора, потому что на DC, Группа пользователей не имеет, "Позволяют вход в систему локально" пользовательское право. Когда sshd пытался переключить контекст от учетной записи sshd сервиса до непривилегированного пользователя, операция, отказавшая, потому что у пользователя не было входа в систему локально разрешением.
Для фиксации я должен был отредактировать политику Контроллера домена По умолчанию дать Группе пользователей Позволить вход в систему, локально правильный. Это может быть найдено в управлении Групповой политикой> (Ваш домен)> Объекты Групповой политики. Щелкните правой кнопкой, Редактирование. Перейдите к Конфигурации компьютера> политики> Windows Settings> Настройки безопасности> Локальные политики> Пользовательское Присвоение Прав. Откройте вход в систему Allow локально и добавьте Группу пользователей (или, можно хотеть создать группу 'пользователей SSH' и добавить это вместо этого).
После редактирования политики, выполненной gpupdate
в командной строке для обновления изменений и Вы хороши для движения.
Я решил ответить на этот вопрос, так как он необходим сообществу Геррита. В настоящее время не так много руководств по расширенным настройкам 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, включенный в дистрибутив 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, включенный в дистрибутив 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 следующие:
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: Убедитесь, что нет выдающихся ошибок. Если у вас возникнут проблемы, вы можете задать вопросы здесь или в списке рассылки gerrit: Убедитесь, что нет выдающихся ошибок. Если у вас возникнут проблемы, вы можете задать вопросы здесь или в списке рассылки gerrit: 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. Последующие пользователи будут автоматически зарегистрированы как непривилегированные.
После входа в систему в качестве пользователя вы найдете небольшой мастер, который поможет вам начать работу. Мастер поможет вам заполнить:
Сервер запросит у вас открытый ключ 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 Система проверки кода, размещенная на Windows 2008 Server :) Это ' не так распространен, как установка, и, как вы можете сказать, требует дополнительных действий. Однако у некоторых из нас ограниченные ресурсы, и они могут использовать только то, что предоставлено. Я надеюсь, что это руководство поможет тем, кто хочет запустить Gerrit в аналогичной среде. Теперь вы должны быть готовы начать использовать Gerrit! Наслаждайтесь!
Для получения дополнительной информации об использовании Gerrit обратитесь к руководству пользователя из проекта Gerrit:
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
Спасибо Шону Пирсу за помощь по IRC!
Учебное пособие преобразовано в документацию по проекту Gerrit. Для заинтересованных и нужна хорошая ссылка. Просмотрите запрос на исправление здесь: