在Ubuntu 16.04上安裝Gerrit服務

在Ubuntu 16.04上安裝Gerrit服務

Gerrit是一個基於Git版本控制系統的運行於Web瀏覽器上的Code Review工具,本文敘述如何在Ubuntu 16.04上安裝Gerrit服務。(當然安裝Gerrit的方法有很多,本文只是其中之一)

前提

依照本文實踐的前提如下:

1. 一臺具有公網IP地址的ECS服務器

2. 服務器有訪問公網資源的權限

3. 服務器的操作系統為Ubuntu 16.04

4. 操作者擁有對ECS服務器的網絡控制權限

5. 已經安裝了Java運行環境(JRE)

安裝PostgreSql數據庫並創建用戶

apt install postgresql
# 創建pg用戶名 pguser
sudo -u postgres createuser -RDIElPS <pguser>
# 創建pg數據庫 pgdb
sudo -u postgres createdb -E UTF-8 -O <pguser> <pgdb>
/<pgdb>/<pguser>/<pguser>

下載、配置和運行Gerrit服務

下載頁面地址 https://gerrit-releases.storage.googleapis.com/index.html ,目前最新版是 gerrit-2.16.5.war ,我們以它為例。

下載完成後開始運行如下命令進行配置:(注意修改/your/target/site_directory)

java -jar /your/path/to/gerrit-2.16.5.war -d /your/target/site_directory

在下面的交互式設置中,進行相應輸入(其中的郵箱配置以阿里雲郵為例):

*** Gerrit Code Review 2.16.5
***
Create '/your/target/site_directory' [Y/n]? Y
*** Git Repositories
***
Location of Git repositories [git]: [Enter]
*** SQL Database
***
Database server type [h2]: postgresql
Server hostname [localhost]: [Enter]
Server port [(postgresql default)]: [Enter]
Database name [reviewdb]: <pgdb>
Database username [root]: <pguser>
<pguser>'s password : <pgpwd>
confirm password : <pgpwd>
*** Index
***
Type [lucene/?]: [Enter]
*** User Authentication
***
Authentication method [openid/?]: http
Get username from custom HTTP header [y/N]? [Enter]
SSO logout URL : [Enter]
Enable signed push support [y/N]? [Enter]
*** Review Labels
***
Install Verified label [y/N]? [Enter]
*** Email Delivery
***
SMTP server hostname [localhost]: smtp.mxhichinacom
SMTP server port [(default)]: 25
SMTP encryption [none/?]:
SMTP username [root]: 你的阿里雲郵郵件地址

[email protected]'s password : 你的郵件密碼
confirm password : 重複你的郵件密碼
*** Container Process
***
Run as [root]: [Enter]
Java runtime [/usr/lib/jvm/jdk1.8.0_201/jre]: [Enter]
Copy gerrit-2.16.5.war to /your/target/site_directory/bin/gerrit.war [Y/n]? [Enter]
Copying gerrit-2.16.5.war to /your/target/site_directory/bin/gerrit.war
*** SSH Daemon
***
Listen on address [*]:
Listen on port [29418]:
Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done
*** HTTP Daemon
***
Behind reverse proxy [y/N]? y
Proxy uses SSL (https://) [y/N]? [Enter]
Subdirectory on proxy server [/]: [Enter]
Listen on address [*]: [Enter]
Listen on port [8081]: [Enter]
Canonical URL [http://<port>/]:
*** Cache
***
*** Plugins
***
Installing plugins.
Install plugin codemirror-editor version v2.16.5 [y/N]? [Enter]
Install plugin commit-message-length-validator version v2.16.5 [y/N]? [Enter]
Install plugin download-commands version v2.16.5 [y/N]? [Enter]
Install plugin hooks version v2.16.5 [y/N]? [Enter]
Install plugin replication version v2.16.5 [y/N]? [Enter]
Install plugin reviewnotes version v2.16.5 [y/N]? [Enter]
Install plugin singleusergroup version v2.16.5 [y/N]? [Enter]
Initializing plugins.
No plugins found with init steps.
/<port>/<pgpwd>/<pgpwd>/<pguser>/<pguser>/<pgdb>

進行完以上初始化步驟之後,還可以進一步在 /your/target/site_directory/etc/gerrit.config中修改配置。例如,我們在郵件配置中加入一條from屬性:

[sendemail]
smtpServer = smtp.mxhichinacom
smtpServerPort = 25
smtpUser = [email protected]
from = CodeReview<email>
/<email>

這樣Gerrit服務就配置完成了,我們重啟Gerrit:

/your/target/site_directory/bin/gerrit.sh restart

安裝Apache進行反向代理

安裝Apache:

apt install apache2

編輯Apache配置/etc/apache2/sites-enabled/000-default.conf,注意和你剛剛對Gerrit服務做的配置保持一致(例如8081端口、/your/target/site_directory/etc/passwords密碼文件路徑):

<virtualhost>
ServerName
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<proxy>
Order deny,allow
Allow from all
/<proxy>
<location>
AuthType Basic
AuthName "Welcome to Gerrit Code Review Site"
Require valid-user
AuthUserFile /your/target/site_directory/etc/passwords

AllowEncodedSlashes On
ProxyPass / http://127.0.0.1:8081/
/<virtualhost>

配置登錄賬號密碼

由於在上一步配置了密碼文件路徑,用於鑑權,我們需要在文件中添加賬號信息。

touch /your/target/site_directory/etc/passwords
/usr/bin/htpasswd -b review_site/etc/passwords

重啟服務,驗證效果

service apache2 restart
/your/target/site_directory/bin/gerrit.sh restart

打開網頁地址 http://:80/,觀察效果:

在Ubuntu 16.04上安裝Gerrit服務


分享到:


相關文章: