Ubuntu14.04安装Gerrit-3.1.2

简介: 笔记

版本说明


系统版本: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,如果安装没有问题就能看到如下界面:

3.png

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,这时正常情况下会弹出登录界面:

4.png

image.png


输出第5步中创建的用户admin和密码

登录成功后,就会出现gerrit的的界面了:

5.png

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


目录
相关文章
|
2月前
|
Ubuntu Shell 网络安全
安装了ubuntu虚拟机后发现shell无法连接 ubuntu开启ssh连接
【8月更文挑战第23天】安装了ubuntu虚拟机后发现shell无法连接
114 6
|
1月前
|
Ubuntu Linux Docker
Ubuntu 18.04 安装Docker实战案例
关于如何在Ubuntu 18.04系统上安装Docker的实战案例,包括安装步骤、配置镜像加速以及下载和运行Docker镜像的过程。
154 3
Ubuntu 18.04 安装Docker实战案例
|
1月前
|
Ubuntu 网络安全 开发工具
Ubuntu19.04的安装过程详解以及操作系统初始化配置
本文详细介绍了Ubuntu 19.04操作系统的安装过程、初始化配置、网络设置、软件源配置、SSH远程登录以及终端显示设置。
58 1
Ubuntu19.04的安装过程详解以及操作系统初始化配置
|
16天前
|
存储 Prometheus 监控
在Ubuntu系统上安装与配置Prometheus的步骤
通过以上步骤,您应该已经成功在Ubuntu系统上安装并配置了Prometheus。您现在可以开始使用Prometheus收集和分析您的系统和应用程序的指标数据了。
34 1
|
29天前
|
Ubuntu NoSQL
ubuntu上安装某个程序的符号表和源码包
ubuntu上安装某个程序的符号表和源码包
|
29天前
|
Ubuntu
在树莓派4B上安装ubuntu系统
在树莓派4B上安装ubuntu系统
|
29天前
|
Ubuntu
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
使用dpkg在ubuntu上安装软件包遇到依赖包的问题
|
2月前
|
Ubuntu Shell C++
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
在Ubuntu18.04上安装ros2的环境,ros2的常用命令:播放包、录制包等
42 1
|
2月前
|
Ubuntu Docker 索引
2024年最新版 Ubuntu 20+ 上安装 Docker
这篇文章提供了在Ubuntu 20+版本上安装Docker的详细步骤,包括更新软件包索引、安装依赖包、添加Docker官方GPG密钥、设置Docker稳定版仓库、安装Docker CE以及验证安装是否成功,并指导如何将用户添加到docker组以非root用户身份运行Docker。
|
2月前
|
Ubuntu Linux 开发工具
【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub
【事件中心 Azure Event Hub】在Linux环境中(Ubuntu)安装Logstash的简易步骤及配置连接到Event Hub