総数:14 今日:1 昨日:0

もくじ

JDK8のインストール

gerrit@ubdt16044:~$ which java
/usr/bin/java
gerrit@ubdt16044:~$ ls -la /usr/bin/java
lrwxrwxrwx 1 root root 22  5月  5 12:28 /usr/bin/java -> /etc/alternatives/java
gerrit@ubdt16044:~$ ls -la /etc/alternatives/java
lrwxrwxrwx 1 root root 46  5月  5 12:28 /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
gerrit@ubdt16044:~$ ls -la /usr/lib/jvm/java-8-openjdk-amd64//jre/bin/java 
-rwxr-xr-x 1 root root 6464  3月 14 21:58 /usr/lib/jvm/java-8-openjdk-amd64//jre/bin/java

Configure Java for Strong Cryptography

参考URL https://gerrit-documentation.storage.googleapis.com/Documentation/2.15.1/install.html#cryptography

しかしopenjdk8の場合は不要

Openjdk comes already installed with JCE

実行結果は・・・

true

ここからの記載の参考url Ubuntu 16.04: GerritとJenkinsでコードレビュー環境を構築する

gerritサーバ側の設定

Ubuntu 16.04でgerritサーバを動作させる為の設定を記載します。

gerritパッケージのインストール(apt-getで)

~$ sudo su -c 'echo "deb mirror://mirrorlist.gerritforge.com/deb gerrit contrib" > /etc/apt/sources.list.d/gerritforge.list'
deb mirror://mirrorlist.gerritforge.com/deb gerrit contrib
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1871F775
Executing: /tmp/tmp.LlR3JDAzXm/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv-keys
1871F775
gpg: 鍵1871F775をhkpからサーバkeyserver.ubuntu.comに要求
gpg: 鍵1871F775: 公開鍵"GerritForge <info@gerritforge.com>"をインポートしました
gpg: 処理数の合計: 1
gpg:               インポート: 1  (RSA: 1)
$ sudo apt-get update -y
ヒット:1 http://jp.archive.ubuntu.com/ubuntu xenial InRelease
ヒット:2 http://jp.archive.ubuntu.com/ubuntu xenial-updates InRelease                                                        
ヒット:3 http://jp.archive.ubuntu.com/ubuntu xenial-backports InRelease                                                      
ヒット:4 http://security.ubuntu.com/ubuntu xenial-security InRelease                           
無視:5 mirror://mirrorlist.gerritforge.com/deb gerrit InRelease                                
取得:6 mirror://mirrorlist.gerritforge.com/deb gerrit Release [1,475 B]
取得:7 mirror://mirrorlist.gerritforge.com/deb gerrit Release.gpg [473 B]
取得:8 mirror://mirrorlist.gerritforge.com/deb gerrit/contrib amd64 Packages [33.9 kB]
取得:9 mirror://mirrorlist.gerritforge.com/deb gerrit/contrib i386 Packages [33.9 kB]
69.8 kB を 4秒 で取得しました (15.1 kB/s)
パッケージリストを読み込んでいます... 完了
W: mirror://mirrorlist.gerritforge.com/deb/dists/gerrit/Release.gpg: 鍵 F0E24DA66FFAA737081E5A7E1FFFAA5E1871F775 による署名は弱い digest アルゴリズム (SHA1) を使用しています
$ sudo apt-get install -y gerrit
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
  gerrit
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 96 個。
89.1 MB のアーカイブを取得する必要があります。
この操作後に追加で 89.3 MB のディスク容量が消費されます。
取得:1 mirror://mirrorlist.gerritforge.com/deb gerrit/contrib amd64 gerrit all 2.15.1-1 [89.1 MB]
89.1 MB を 33秒 で取得しました (2,622 kB/s)                                                                                   
以前に未選択のパッケージ gerrit を選択しています。
(データベースを読み込んでいます ... 現在 229288 個のファイルとディレクトリがインストールされています。)
.../gerrit_2.15.1-1_all.deb を展開する準備をしています ...
Checking Java version ... 1.8.0
gerrit (2.15.1-1) を展開しています...
gerrit (2.15.1-1) を設定しています ...

Initialising Gerrit site ... DONE
Setting user/group owner ... DONE
Creating symlinks .......... DONE

Installation completed

Starting Gerrit Code Review: OK
To start using Gerrit, open: http://ubdt16044:8080/
$ sudo systemctl enable gerrit
gerrit.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable gerrit
$ sudo systemctl start gerrit
Job for gerrit.service failed because the control process exited with error code.
See "systemctl status gerrit.service" and "journalctl -xe" for details.

では 一度再起動してから・・・

$ sudo systemctl start gerrit

確認

ブラウザから以下のURLにアクセスすることでgerritに接続できます。

http://<srver>:8080/

例: http://192.168.3.25:8080/ 例: http://ubdt16044:8080/

TCPポートの変更

デフォルトのポートは8080です。他のサービスと重複する場合は以下のように変更します。

なお、canonicalWebUrlのドメイン名はページ遷移で使われるので、外部からアクセスできるものにしてください。
IPアドレスでも良いです。デフォルトだとドメイン名はホスト名が設定されています。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 15:40:47.447992597 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 16:48:20.334216036 +0900
@@ -1,7 +1,7 @@
 [gerrit]
 	basePath = git
 	serverId = aa1c7b17-5abd-4153-9b3c-c2c79523742a
-	canonicalWebUrl = http://ubdt16044:8080/
+	canonicalWebUrl = http://192.168.3.25:8081/
 [database]
 	type = h2
 	database = db/ReviewDB
@@ -14,7 +14,7 @@
 [sshd]
 	listenAddress = *:29418
 [httpd]
-	listenUrl = http://*:8080/
+	listenUrl = http://*:8081/
 	filterClass = com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect
 	firstTimeRedirectUrl = /login/%23%2F?account_id=1000000
 [cache]

gerritを再起動します。

$ sudo systemctl restart gerrit

ブラウザから以下のURLにアクセスすることでgerritに接続できます。

http://<server>:8081

例: http://192.168.3.25:8081/

Apache2を利用する

<server>:<port>ではなく、<server>/gerritでアクセスできるようにApache2を利用するようにします。
また、URLアクセスにダイジェスト認証を利用するようにします。

gerritでApache2を利用するようにします。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 16:48:20.334216036 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 17:32:57.662216036 +0900
@@ -1,7 +1,7 @@
 [gerrit]
 	basePath = git
 	serverId = aa1c7b17-5abd-4153-9b3c-c2c79523742a
-	canonicalWebUrl = http://192.168.3.25:8081/
+	canonicalWebUrl = http://192.168.3.25/gerrit
 [database]
 	type = h2
 	database = db/ReviewDB
@@ -14,7 +14,7 @@
 [sshd]
 	listenAddress = *:29418
 [httpd]
-	listenUrl = http://*:8081/
+	listenUrl = proxy-http://127.0.0.1:8081/gerrit
 	filterClass = com.googlesource.gerrit.plugins.ootb.FirstTimeRedirect
 	firstTimeRedirectUrl = /login/%23%2F?account_id=1000000
 [cache]

gerritを再起動します。

$ sudo systemctl restart gerrit

Apache2にgerrit用の設定ファイルを追加します。

~$ sudo su -c 'cat << EOF > /etc/apache2/mods-enabled/gerrit.conf
ProxyPass           /gerrit  http://localhost:8081/gerrit nocanon
ProxyPassReverse    /gerrit  http://localhost:8081/gerrit nocanon
ProxyRequests       Off

<Proxy http://localhost:8081/gerrit>
  Order deny,allow
  Allow from all
</Proxy>

<Location /gerrit>
  AuthType Digest
  AuthName "gerrit"
  AuthUserFile /etc/apache2/.htdigest
  Require valid-user
</Location>
EOF
'

ダイジェスト認証のファイルを作成します。 例

設定項目設定内容
gerrit ユーザー名adminuser
パスワードgerrit
~$ sudo htdigest -c /etc/apache2/.htdigest "gerrit" adminuser
Adding password for admin in realm gerrit.
New password: 
Re-type new password:

gerritはスラッシュの代わりに%2Fを使うページがあります。
VirtualHostディレクティブ内部でAllowEncodedSlashesをOnにします。

~$ diff -uprN /etc/apache2/sites-available/000-default.conf{.org,}
--- /etc/apache2/sites-available/000-default.conf.org	2016-03-19 18:48:35.000000000 +0900
+++ /etc/apache2/sites-available/000-default.conf	2018-05-05 18:01:06.922216036 +0900
@@ -26,6 +26,8 @@
 	# following line enables the CGI configuration for this host only
 	# after it has been globally disabled with "a2disconf".
 	#Include conf-available/serve-cgi-bin.conf
+
+	AllowEncodedSlashes On
 </VirtualHost>
 
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

proxy_httpとauth_digestを有効にして、Apache2を再起動します。

$ sudo a2enmod proxy_http auth_digest
Considering dependency proxy for proxy_http:
Enabling module proxy.
Enabling module proxy_http.
Considering dependency authn_core for auth_digest:
Module authn_core already enabled
Enabling module auth_digest.
To activate the new configuration, you need to run:
  service apache2 restart
$ sudo systemctl restart apache2

管理ユーザの追加

HTTPでアクセスできる管理ユーザを作成します。以下の手順で管理ユーザを追加します。

gerritクライアントでSSHの公開鍵を作成します。

すでに公開鍵を持っている場合はそちらを利用してください。

~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/gerrit/.ssh/id_rsa): 
Created directory '/home/gerrit/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/gerrit/.ssh/id_rsa.
Your public key has been saved in /home/gerrit/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:X0t1469iBONqTqUQ3xln8LbAfE1dd3uVut3n7e70V5s gerrit@ubdt16044
The key's randomart image is:
+---[RSA 2048]----+
|          .   ..B|
|         o o o .*|
|      .   = * +oo|
|       o .oO +..o|
|      . S.+o+ o..|
|       . +.o.o .=|
|        o....  .O|
|       .o   o  E=|
|       o.  . ..+*|
+----[SHA256]-----+
~$ cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDU2jAe0Koc/ix1TKtAkPSy2EKiP0Z0bI6EgzWE6GRxfL9CHK0vASVhn9dZsMZnJ4i8cVx0x/U2Vdyk1mRcKwPmzPPBW2GyK5fkfylCH9J6tIvjHYNb+afV5pUsdAOLzWTGkIxgVXsPofLTfI6mij1fUSDNFSOwhGA4V4+PM32VJiZpkCK/U3QQBUE58L1C4Hdg2rpD3iIHrxObahzHzRlLb+6JZi6HPTnyidWb85bK0952MZV7b2L2qaLRORj6LofCxRTlaQrx+NgL/mXjyvJ8guJovv+VaCoQOJNIyFhKi73eFISyHPEWg2fLGSCGj7PQ0ofHVJqwOnqElKyGKeG5 gerrit@ubdt16044

ユーザ認証をHTTPに変更します。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 17:32:57.662216036 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 21:56:55.490216036 +0900
@@ -8,7 +8,7 @@
 [index]
 	type = LUCENE
 [auth]
-	type = DEVELOPMENT_BECOME_ANY_ACCOUNT
+	type = HTTP
 [sendemail]
 	smtpServer = localhost
 [sshd]

gerritを再起動します。

~$ sudo systemctl restart gerrit

URLにアクセスしてユーザを作成する

ブラウザから以下のURLへアクセスします。

http://<server>/gerrit

例:
http://192.168.3.25/gerrit

ダイジェスト認証のダイアログ画面にて

htdigestで作成したユーザ名とパスワードを入力します。

dashboard画面にて

画面右上のところのSettingsを選択する。
画面左のContact Informationを選択する。
フルネームを登録します。
フルネームはユーザ名とは別のものにする必要があります。
画面左のSSH Public Keysを選択する。
SSHの公開鍵を登録します。
なお、仕様なのか、HTTP経由だとemailの登録はできません。後ほどSSH経由で登録します。

ユーザ認証をDEVELOPMENT_BECOME_ANY_ACCOUNTに変更します。

~$ diff -uprN /etc/gerrit/gerrit.config{.org,}
--- /etc/gerrit/gerrit.config.org	2018-05-05 21:56:55.490216036 +0900
+++ /etc/gerrit/gerrit.config	2018-05-05 22:58:25.566216036 +0900
@@ -8,7 +8,7 @@
 [index]
 	type = LUCENE
 [auth]
-	type = HTTP
+	type = DEVELOPMENT_BECOME_ANY_ACCOUNT
 [sendemail]
 	smtpServer = localhost
 [sshd]

gerritを再起動します。

~$ sudo systemctl restart gerrit

トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS