web-dev-qa-db-ja.com

LDAPを使用してTomcatでGerritをインストールするにはどうすればよいですか?

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

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

11
Jason Huntley

これはGerritコミュニティに必要なものなので、先に進むことにしました。現在、Gerritの高度な設定をカバーするチュートリアルはそれほど多くありません。これが他の人がXP /アジャイルプラクティスを探り、Gerritを稼働させるのに役立つことを願っています。微妙なセットアップの課題と詳細をすべてクリアすると、優れたツールになります。

このインストールチュートリアルは、特定の環境に対応するという点でかなりユニークです。

  • Windows 2008サーバー
  • PostgreSql
  • トムキャット
  • 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 [email protected]
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のサブディレクトリを作成する
  • スキーマと設定をデプロイするための設定ディレクトリを作成します
  • 内容は次のようになります。
  • gerrit
    • トムキャット
    • 設定
    • gerrit-X.X
  • 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-X.Xサブディレクトリに抽出します
  • CDをgerritベースディレクトリに移動し、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]: [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\etc\gerrit.configを編集します
  • gerritセクションの下に、conicalWebUrl = http://review.corporation.com/ の設定を追加します
  • プロジェクトが従来のproject.git形式に従っていない場合は、次のセクションを追加します。
  • ファイルlocaitonと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サーバーでプロキシするつもりでない限り、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は、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のプロパティを開き、スタートアップの種類が自動に設定されていることを確認します。

Services

ダイアログを適用して閉じる。

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アクセスを構成します。

enter image description here

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プロジェクトのドキュメントに変換されました。興味があり、良いリファレンスが必要な方のために。こちらのパッチリクエストをご覧ください。

https://gerrit-review.googlesource.com/#/c/37072

21
Jason Huntley