Gerritコミュニティに必要なものであるため、私はこれに回答することにしました。現在、Gerritの高度なセットアップをカバーするチュートリアルはそれほど多くありません。これが、他の人がXP / Agileプラクティスを探求し、Gerritを起動して実行できるようになることを願っています。微妙なセットアップの課題と詳細をすべて理解したら、これは素晴らしいツールです。
このインストールチュートリアルは、特定の環境に役立つという点でかなりユニークです。
- Windows 2008サーバー
- PostgreSql
- Tomcat
- Active Directory経由のLDAP
- ゲリット
- msysgit
始める前に、システムにgitがインストールされていることを確認してください。http://code.google.com/p/msysgit/downloads/listからWindows用の最新のmsysgitコマンドラインツールをダウンロードします。
「公式Git for Windowsのフルインストーラー」を入手してください。
- MSysGitをインストールする
- プロンプトが表示されたらデフォルトを使用する
- Gitを構成する
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 you@corporation.com
git config --global core.autocrlf false
ここで使用する資格情報がgerritの資格情報と一致することを確認してください。それ以外の場合、gerritはリクエストを拒否します。
Gerritのインストールと設定の手順は次のとおりです。
- まず、postgresをホストしているサーバーにログインし、Gerritのユーザーとデータベースを作成します
- createuser --username = postgres -A -D -P -E gerrit2
- createdb --username = postgres -E UTF-8 -O gerrit2 reviewdb
- 次に、異なる場合はGerritのホストに切り替えて、Gerritをデプロイするための3つのディレクトリを作成します
- gerritのベースインストールディレクトリを作成します。できれば、warデプロイメントコンテンツ用のバージョン付きディレクトリを作成してください
- Tomcatのサブディレクトリを作成します
- スキーマと構成を展開するための構成ディレクトリを作成する
- 内容は次のようになります。
- ゲリット
- http://tomcat.apache.org/download-60.cgiからTomcatをダウンロードします
- 注:ほとんどのLinuxディストリビューションでは、これをアップデートマネージャーから入手できます。例:UbuntuでSynapticを使用する
- TomcatインストールをTomcatディレクトリにデプロイします
- http://code.google.com/p/gerrit/downloads/listから最新のgerrit.warをダウンロードし
ます。
- ベースのgerritディレクトリにファイルをコピーします
- warファイルをgerrit-XXサブディレクトリに抽出します
- gerritベースディレクトリに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
- Active Directoryで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>
Apache HTTP Serverでプロキシするつもりでない限り、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をサービスとして設定し、レビューシステムをオンラインにする準備ができました。
- まず、サービスとしてGerritを実行するためのTomcat設定を調整します
- tomcat / binに移動してservice.batを編集します
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は、間違いなく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を介したサーバー管理が許可されます。後続のユーザーは、非特権ユーザーとして自動的に登録されます。
ユーザーとしてサインインすると、開始するための小さなウィザードが見つかります。ウィザードを使用すると、次の情報を入力できます。
プロジェクトが公開されていない限り、登録ユーザーのみにHTTPアクセスを設定します。
HTTPパスワードを生成する
独自のログインを設定したにもかかわらず、http / httpsを介してサーバーへのgerritのパスワードを生成する必要があります。[設定]-> [HTTPパスワード]設定に移動し、[パスワードの生成]をクリックします。http(s)上のすべてのgit操作にこのパスワードを使用します。
これで、HTTP経由でGerritをテストできます。Gerrit configで参照したリポジトリに存在するプロジェクトを複製できるはずです。
クローン操作でテストする
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経由でGerritからプロジェクトを複製します。
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.
もうbyめていなければ、リラックスできます。Windows2008 ServerでホストされているGerrit Code Reviewシステムを使用してください。セットアップほど一般的ではありません。ステップ。ただし、一部のリソースには限りがあり、提供されているものしか使用できません。このチュートリアルが、同様の環境でGerritを実行しようとしている人々に役立つことを願っています。Gerritを使い始める準備ができました!楽しい!
Gerritの使用に関する詳細については、Gerritプロジェクトのユーザーガイドを参照してください。
http://gerrit-documentation.googlecode.com/svn/Documentation/2.3/index.html
IRCについてお問い合わせいただきありがとうございますShawn Pierce!
今後の参考のために
チュートリアルは、Gerritプロジェクトのドキュメントに変換されました。興味のある方や良い参考資料が必要な方。パッチのリクエストはこちらをご覧ください:
https://gerrit-review.googlesource.com/#/c/37072