TomcatでLDAPを使用してGerritをインストールする方法


11

LDAPをサポートするTomcatの下でGerritをインストールするための良い手順を見つけようとしています。できればこれを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

この試行錯誤をいつでも設定できますが、誰かが既に問題を解決している場合は時間を節約したいと思います。

回答:


21

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のサブディレクトリを作成します
  • スキーマと構成を展開するための構成ディレクトリを作成する
  • 内容は次のようになります。
  • ゲリット
    • トムキャット
    • config
    • gerrit-XX
  • 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を介したサーバー管理が許可されます。後続のユーザーは、非特権ユーザーとして自動的に登録されます。

ユーザーとしてサインインすると、開始するための小さなウィザードが見つかります。ウィザードを使用すると、次の情報を入力できます。

  • 本名(Gerritの表示名)
  • 電子メールを登録します(後で確認する必要があります)
  • ssh + gitでGerritと通信するユーザー名を選択します
  • サーバーはRSA公開鍵を要求します。これが上記で生成したキーであり、Gerritが新しいキーを認識し、それによって私たちを識別できるようにする時間です。

    user @ host:〜$ cat .ssh / id_rsa.pub

プロジェクトが公開されていない限り、登録ユーザーのみに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


非常に素晴らしく完全な情報。<p> msysgitのデフォルトの「Git for windows」にはCGI.pmが含まれていませんが、gitwebでどのように動作しますか?
ラリーカイ

それもしばらく前に解決しました。私はその問題を解決する方法をメモしています。ここでアップデートをすぐに提供できるかどうかを確認します。
ジェイソンハントリー

ヘイラリー、チュートリアルを更新し、GIT.pmの問題の修正を含めました。この投稿が役立つと思う場合は、回答に投票してください。ありがとう!
ジェイソンハントリー

gitwebは、あなたがCGIとして記述したように機能しますか?gitweb.batを作成して、apache <p>なしでラッピングしました。CGI.pmの場合は、CGI.tar.gzをダウンロードして/ usr / lib / perl5 / site_perlにアップロードするだけで十分です。<p>チュートリアルは完了しましたが、初心者にとって従うのは少し難しいです
;

@larrycai、はい、私はしばらく前にこのチュートリアルを書きましたが、実際に改善され、Gerritのプロジェクトドキュメントに貢献しました。まだ審査中ですが、承認されたらこの質問を更新します。フィードバックをお寄せいただきありがとうございます。そうそう、gitwebは間違いなくApache経由でCGIとして実行されます。
ジェイソンハントリー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.