美文网首页
Ubuntu14.04安装Gerrit-3.1.2

Ubuntu14.04安装Gerrit-3.1.2

作者: DD_Dog | 来源:发表于2020-02-02 21:37 被阅读0次

版本说明

系统版本:Ubuntu server 14.04
Gerrit版本:Gerrit-3.1.2

需要安装的程序

  1. Ubuntu server 14.04
  2. Gerrit-3.1.2
  3. nginx 1.4.6(版本可以随意)
  4. JDK 1.8x (必须为1.8版本)
  5. apache2-utils
  6. git

安装步骤

安装好Ubuntu server系统后开始安装Gerrit

1.新建用户gerrit
在指定用户gerrit下搭建我们的Gerrit,避免影响其它用户。

ubuntu:~$ sudo useradd gerrit -m -s /bin/bash
ubuntu:~$ sudo passwd gerrit 

将gerrit用户添加sudo权限,打开文件

sudo vim /etc/sudoers

按照root用户配置,添加一行,如下:

# User privilege specification
root    ALL=(ALL:ALL) ALL
gerrit  ALL=(ALL:ALL) ALL

切换到gerrit用户,后面所有的配置都是在gerrit用户上进行的:

su gerrit

2.安装JDK
JDK版本必须为1.8,我使用的版本为jdk-8u212-linux-x64.tar.gz
将该文件拷贝到gerrit主目录,并运行命令解压tar -xvf jdk-8u212-linux-x64.tar.gz即可解压到当前文件来,并生成jdk1.8.0_212文件夹。
接下来配置环境变量,我们只为当前用户配置,打开~/.bashrc,在文件末尾添加如下配置:

export JAVA_HOME=/home/gerrit/jdk1.8.0_212
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

再执行sudo source ~/.bashrc更新环境变量。
可以运行java -version或者javac等命令进行验证。

3.下载并安装gerrit
下载地址,我下载的是当前最新版本gerrit-3.1.2-war。
gerrit在3.0版本后有重大更新,安装时可能会有些许不同。3.0之后数据库默认使用git来存储,所以必须要安装git。

sudo apt-get install git

将war包放在gerrit用户主目录下面,执行如下命令进行安装:

java -jar gerrit-3.1.2.war init -d review_site

后面有很多的安装选项,其中重要的是设置一下监听端口,验证方式和插件安装,插件的安装全部选y。

gerrit@ubuntu:~$ java -jar gerrit-3.1.2.war init -d review_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2020-02-02 13:46:20,103] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/review_site/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 3.1.2
*** 


*** Git Repositories
*** 

Location of Git repositories   [git]: GerritResource

*** Index
*** 

Type                           [lucene]: 

*** User Authentication
*** 

Authentication method          [openid/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 
Enable signed push support     [y/N]? 

*** Review Labels
*** 

Install Verified label         [y/N]? 

*** Email Delivery
*** 

SMTP server hostname           [localhost]: 
SMTP server port               [(default)]: 
SMTP encryption                [none/?]: 
SMTP username                  : 

*** Container Process
*** 

Run as                         [gerrit]: 
Java runtime                   [/home/bianjb/jdk1.8.0_212/jre]: 
Copy gerrit-3.1.2.war to review_site/bin/gerrit.war [Y/n]? 
Copying gerrit-3.1.2.war to review_site/bin/gerrit.war

*** SSH Daemon
*** 

Listen on address              [*]: 8181
Listen on port                 [29418]: 
Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done

*** HTTP Daemon
*** 

Behind reverse proxy           [y/N]? 
Use SSL (https://)             [y/N]? 
Listen on address              [*]: 8181^Cgerrit@ubuntu:~$ ^C
gerrit@ubuntu:~$ clear
gerrit@ubuntu:~$ java -jar gerrit-3.1.2.war init -d review_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2020-02-02 13:47:28,872] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/review_site/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 3.1.2
*** 


*** Git Repositories
*** 

Location of Git repositories   [git]: GerritResource

*** Index
*** 

Type                           [lucene]: 

*** User Authentication
*** 

Authentication method          [openid/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 
Enable signed push support     [y/N]? 

*** Review Labels
*** 

Install Verified label         [y/N]? 

*** Email Delivery
*** 

SMTP server hostname           [localhost]: 
SMTP server port               [(default)]: 
SMTP encryption                [none/?]: 
SMTP username                  : 

*** Container Process
*** 

Run as                         [gerrit]: 
Java runtime                   [/home/bianjb/jdk1.8.0_212/jre]: 
Upgrade review_site/bin/gerrit.war [Y/n]? 
Copying gerrit-3.1.2.war to review_site/bin/gerrit.war

*** SSH Daemon
*** 

Listen on address              [*]: 
Listen on port                 [29418]: 

*** HTTP Daemon
*** 

Behind reverse proxy           [y/N]? 
Use SSL (https://)             [y/N]? 
Listen on address              [*]: 
Listen on port                 [8787]: 
Canonical URL                  [http://ubuntu:8787/]: 

*** Cache
*** 

Delete cache file /home/gerrit/review_site/cache/pure_revert.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/web_sessions.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/git_tags.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/change_kind.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/diff.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/diff_summary.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/conflicts.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/mergeability.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/oauth_tokens.lock.db [y/N]? 
Delete cache file /home/gerrit/review_site/cache/diff_intraline.lock.db [y/N]? 

*** Plugins
*** 

Installing plugins.
Install plugin codemirror-editor version v3.1.2 [y/N]? y
Installed codemirror-editor v3.1.2
Install plugin commit-message-length-validator version v3.1.2 [y/N]? y
Installed commit-message-length-validator v3.1.2
Install plugin delete-project version v3.1.2 [y/N]? y
Installed delete-project v3.1.2
Install plugin download-commands version v3.1.2 [y/N]? y
Installed download-commands v3.1.2
Install plugin gitiles version v3.1.2 [y/N]? y
Installed gitiles v3.1.2
Install plugin hooks version v3.1.2 [y/N]? y
Installed hooks v3.1.2
Install plugin plugin-manager version v3.1.2 [y/N]? y
Installed plugin-manager v3.1.2
Install plugin replication version v3.1.2 [y/N]? y
Installed replication v3.1.2
Install plugin reviewnotes version v3.1.2 [y/N]? y
Installed reviewnotes v3.1.2
Install plugin singleusergroup version v3.1.2 [y/N]? y
Installed singleusergroup v3.1.2
Install plugin webhooks version v3.1.2 [y/N]? y
Installed webhooks v3.1.2
Initializing plugins.

Initialized /home/gerrit/review_site
Reindexing projects:    100% (2/2) with: reindex --site-path review_site --threads 1 --index projects
Reindexed 2 documents in projects index in 0.2s (8.6/s)

最后启动gerrit

review_site/bin/gerrit.sh start

有时候可以启动不成功,这时就需要查看错误日志,位于~/review_site/logs/目录下面,分析日志来解决启动时遇到的错误。

启动成功后就可以通过浏览器访问了,gerrit的监听是8787端口,所以在同一网络内访问http://192.168.111.129:8787,其中192.168.111.129是我的机器的内网IP,如果安装没有问题就能看到如下界面:

image.png
提示身份验证错误,这是因为gerrit强制使用反向代理来进行访问,所以还需要配置反向代理。

4.配置反向代理
反向代理大部分使用nginx或者apache2,这里使用的是nginx。
首先安装nginx

sudo apt-get install nginx

再配置反向代理,打开/etc/nginx/nginx.conf,在http结点下添加如下内容

        server {
                listen *:81;
                server_name localhost;
                allow   all;
                deny    all;

                auth_basic "Welcomme to Gerrit Code Review Site!";
                auth_basic_user_file /home/gerrit/review_site/etc/gerrit.passwd;

                location / {
                   proxy_pass  http://127.0.0.1:8787;
                   proxy_set_header X-Forwarded-For $remote_addr;
                   proxy_set_header Host $host;
                }

        }

其中:

  • listen *:81 是代理端口,也就是访问gerrit时需要浏览器地址栏的8787改为81
  • auth_basic_user_file/home/gerrit/review_site/etc/gerrit.passwd是后面需要我们创建的身份验证文件
  • proxy_pass是被代理的地址,http://127.0.0.1:8787是本机的8787端口

保存后重新加载nginx配置

sudo nginx -s reload

5.创建用户名和密码
gerrit的第一个登录的用户是比较特殊的,具有特殊仅限。
使用htpasswd工具创建用户名和密码。
安装htpasswd工具

sudo apt-get install apache2-utils    

创建用户admin,并设置密码:

htpasswd -c /home/gerrit/review_site/etc/gerrit.passwd admin

该命令会在/home/gerrit/review_site/etc下面创建gerrit.passwd文件,并把admin用户名和密码保存在里面。
这时要重启gerrit

review_site/bin/gerrit.sh restart

重启的时间较长,请耐心等待。

6.登录验证
在同一网络的其它机器上的浏览器中输出地址:http://192.168.111.129:81,这时正常情况下会弹出登录界面:

image.png
输出第5步中创建的用户admin和密码
登录成功后,就会出现gerrit的的界面了:
image.png

到这时就完成了gerrit的安装过程,当然这只是使用gerrit很简单的一小步,后面还有很多的配置要做,以及学习如何使用gerrit。

问题总结

安装过程可能并不顺利,因为每个人的情况不同,你的ubuntu系统中可能有其它程序影响商端口号,也会产生较多的问题,总之要有耐心的一个一个解决。

  1. nginx重启错误
gerrit@ubuntu:~$ sudo nginx -s reload
nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

解决方法:

gerrit@ubuntu:~$ sudo nginx -c /etc/nginx/nginx.conf 
gerrit@ubuntu:~$ sudo nginx -s reload

参考

Gerrit官网
Apache htpasswd命令用法详解

如果有问题,欢迎交流指正!

相关文章

网友评论

      本文标题:Ubuntu14.04安装Gerrit-3.1.2

      本文链接:https://www.haomeiwen.com/subject/ivaqxhtx.html