LDAPをサポートするTomcatでGerritをインストールするための適切な手順を見つけようとしています。これをWindows 2008 Serverにインストールする必要があります。ただし、可能でない場合はLinuxを選択できます。
ジェリットの指示は桟橋の下での設置のみをカバーしています:
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_ldaphttp://code.google.com/p/gerrit/issues/detail?id=292
私はいつでもこの試行錯誤を設定できますが、誰かが既に問題に取り組んでいる場合は、時間を節約したいと思います。
これはGerritコミュニティに必要なものなので、先に進むことにしました。現在、Gerritの高度な設定をカバーするチュートリアルはそれほど多くありません。これが他の人がXP /アジャイルプラクティスを探り、Gerritを稼働させるのに役立つことを願っています。微妙なセットアップの課題と詳細をすべてクリアすると、優れたツールになります。
このインストールチュートリアルは、特定の環境に対応するという点でかなりユニークです。
始める前に、gitがシステムにインストールされていることを確認してください。 http://code.google.com/p/msysgit/downloads/list からWindows用の最新のmsysgitコマンドラインツールをダウンロードします。
「公式Git for Windowsのフルインストーラー」を入手してください。
MsysgitでGitWebバージョンを使用する場合は、CGI.pmに関するいくつかの問題に気付くでしょう。この問題を解決するための修正について述べたいと思います。
1.7.8の時点でmsysgitディストリビューションに含まれているPerlは壊れています http://groups.google.com/group/msysgit/browse_thread/thread/ba3501f1f0ed95af 。 utf8_heavy.plおよびCGI.pmとともに、unicoreフォルダーがありません。 Perlモジュールをチェックして確認できます。
Perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e ""次の例外が発生する可能性があります。
$ Perl -mCGI -mEncode -mFcntl -mFile :: Find -mFile :: Basename -e "" @INCでCGI.pmが見つかりません(@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 /
libの内容をmsysgit/lib/Perl5/5.8.8にコピーし、既存のファイルを上書きします。
コマンドラインgitを使用している場合は、グローバル構成設定をgitに追加します。
git config --global user.name "Your Name"
git config --global user.email [email protected]
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]: [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.
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>
Apache HTTPサーバーでプロキシするつもりでない限り、AJPコネクタは必要ありません。 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ファイルを変更する必要があります。このファイルは、他のstartup.batおよびシャットダウンスクリプトとともにTomcat/binディレクトリにあります。次のセクションまでスクロールします。
"%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は、gerritの場合は必ず512Mbに、拡張JvmMxは1024Mbに設定する必要があります。
これで、Windowsでサービスとしてgerritをデプロイする準備が整いました。以下を実行してください:
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>
サーバーマネージャーに移動し、[サービス]ノードを開きます。 Gerritのプロパティを開き、スタートアップの種類が自動に設定されていることを確認します。
ダイアログを適用して閉じる。
OK ...もう終わりですか?残念ながらいいえ、あと数ステップです。頑張れ。
これで、サービスを開始する準備ができました。 Gerritサービスを強調表示し、左側の[開始]オプションをクリックするだけです。
Tomcat/logディレクトリの下のログを確認します。未解決のエラーがないことを確認します。問題がある場合は、こちらまたはgerritメーリングリストで質問できます: http://groups.google.com/group/repo-discuss
ブラウザーに移動してサーバーのURLを入力し、Gerritを表示できるはずです: http://review.corporation.com:8080
Ssh公開鍵の入力を求められます。これは、HTTPの代わりにsshを介してGit/Gerritを使用する場合にのみ必要です。私は先に進んでそれをセットアップしました。
SSHを構成する
アクセス用のSSH鍵を生成します。
Administrator @ SERVER〜/ test $ ssh-keygen -t rsa
選択したメールアドレスを使用して、ウェブインターフェースからGerritに新しいアカウントを登録します。サインインしてアカウントを登録した最初のユーザーは、自動的に完全な特権を持つAdministratorsグループに配置され、WebおよびSSHを介したサーバー管理を許可します。以降のユーザーは非特権ユーザーとして自動的に登録されます。
ユーザーとしてサインインすると、開始するための小さなウィザードが表示されます。ウィザードはあなたが記入するのを助けます:
サーバーはRSA公開鍵を要求します。これが上記で生成したキーです。今度は、Gerritが新しいキーを認識し、それによって私たちを識別できることを確認します。
user @ Host:〜$ cat .ssh/id_rsa.pub
プロジェクトが公開されていない限り、登録ユーザーのみにHTTPアクセスを構成します。
HTTPパスワードを生成する
独自のログインを設定したにもかかわらず、http/httpsを介してサーバーにgerritのパスワードを生成する必要があります。 [設定]-> [HTTPパスワード]設定に移動し、[パスワードの生成]をクリックします。このパスワードは、httpを介したすべてのgit操作に使用します。
これで、HTTP経由でGerritをテストできます。 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://[email protected]:29418/REPOSITORY_NAME.g
it
Connection to localhost closed.
SSH経由でGerritからプロジェクトを複製します。
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.
これまでに諦めていなくてもリラックスできます。Windows2008 ServerでホストされているGerrit Code Reviewシステムが動作していることを確認してください:)セットアップほど一般的ではありません。ステップ。ただし、一部のリソースは限られており、提供されているものしか使用できません。このチュートリアルが、同様の環境でGerritを実行したいと考えている人たちに役立つことを願っています。これで、Gerritを使用する準備ができました。楽しい!
Gerritの使用に関する詳細については、Gerritプロジェクトのユーザーガイドを参照してください。
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
IRCのヘルプに感謝 Shawn Pierce !
チュートリアルは、Gerritプロジェクトのドキュメントに変換されました。興味があり、良いリファレンスが必要な方のために。こちらのパッチリクエストをご覧ください。