Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

Wesley13
• 阅读 675

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14

安装配置指南

要保证代码的高质量,那必须要进行同行评审代码检查,所有代码都必须经过 Review 才能 merge 到主干。这还要借助于代码审查系统,来改善和保证提交代码质量,还有益于制定研发流程及代码规范,加深研发团队成员沟通等等。

目前的代码审查工具有太多,有开源免费,也有商业收费的,使用功能上也都差不多,下面列一些常见的代码审查工具,根据实际需要进行选择使用。

CodeStriker、RhodeCode、Codebrag、Phabricator、Codifferous、Barkeep、Crucible、Code Review Tool、Malevich、SmartBear、Review Assistant、Review Board、CodeReviewer、JArchitect、Reviewale。

下面进入正题,准备安装配置各应用,搭建 Web 服务。

1、目录

  • 操作系统:Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-117-generic x86_64)
  • 数据库:postgres (PostgreSQL) 10.14 (Ubuntu 10.14-0ubuntu0.18.04.1)
  • 代码审查系统:Gerrit Code Review gerrit-2.15.19
  • Web 服务器:nginx/1.14.0 (Ubuntu) 高性能的HTTP和反向代理 Web 服务器
  • Web 访问认证:htpasswd 是 Apache 附带的程序,能生成包含用户名和密码的MD5加密文件

2、安装配置

一、先安装 Ubuntu 操作系统,在这里就默认安装完成,不详细介绍安装过程,只说明一些注意事项。

系统安装完成后,首先要执行一下系统更新,更新完成了在接着安装配置 JDK 环境。

执行如下两条指令:

$ sudo apt-get update

$ sudo apt-get -y upgrade

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

以上将完成系统更新操作,JDK 环境也默认已安装配置好,也忽略安装过程,接着往下安装 PostgreSQL 数据库。

二、安装 PostgreSQL 数据库

接着执行如下的安装指令:

~$ sudo apt-get -y install postgresql postgresql-contrib

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

Success. You can now start the database server using:

 

/usr/lib/postgresql/10/bin/pg_ctl -D /var/lib/postgresql/10/main -l logfile start

 

Ver Cluster Port Status Owner    Data directory              Log file

10  main    5432 down   postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log

update-alternatives: using /usr/share/postgresql/10/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode

Setting up postgresql (10+190ubuntu0.1) ...

Setting up postgresql-contrib (10+190ubuntu0.1) ...

Processing triggers for ureadahead (0.100.0-21) ...

Processing triggers for systemd (237-3ubuntu10.24) ...

Processing triggers for libc-bin (2.27-3ubuntu1) ...

~$

~$ /usr/lib/postgresql/10/bin/postgres -V

postgres (PostgreSQL) 10.14 (Ubuntu 10.14-0ubuntu0.18.04.1)

显示 Success 就说明数据库已安装成功了,下面可以查看一下安装的 PostgreSQL 数据库版本信息,执行如下的指令查看:

~$ cd /usr/lib/postgresql/10/bin

~$ ./postgres -V

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

接着在查看一下数据库的服务状态,执行下面的指令:

~$ sudo ps -ef|grep postgres

~$ sudo service postgresql status

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

以上操作 PostgreSQL 数据库就算安装完成,接着创建用户、创建数据库、给用户授权。

执行下面的操作,登录数据库。

~$ sudo -i -u postgres

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

查看所有数据库,执行下面的指令:

postgres=# \l

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

执行下面指令,查看帮助:

postgres=# \help

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

执行下面指令,显示用户及用户属性:

postgres=# \du

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

创建 gerrit 要使用的数据库,执行下面的指令创建:

postgres-# create database gerritdb;

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

创建 gerrit 要访问的数据库用户,执行下面的指令:

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

给新创建的数据库用户 gerrit2 设置密码,执行授权,依次执行下面的四条指令:

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

到此 PostgreSQL  数据库的配置就全部结束了。

三、安装配置 gerrit

提前下载好所需要的版本 *.war 包安装文件,执行下面的指令,进行安装配置:

~$ java -jar gerrit-2.15.19.war init -d /home/scm/review_site

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

*** Experimental features

***

 

Enable any experimental features [y/N]?

 

Initialized /home/scm/review_site

Executing /home/scm/review_site/bin/gerrit.sh start

Starting Gerrit Code Review: WARNING: Could not adjust Gerrit's process for the kernel's out-of-memory killer.

This may be caused by /home/scm/review_site/bin/gerrit.sh not being run as root.

Consider changing the OOM score adjustment manually for Gerrit's PID=11095 with e.g.:

echo '-1000' | sudo tee /proc/11095/oom_score_adj

OK

Waiting for server on 127.0.0.1:80 ... OK

Opening http://127.0.0.1/#/admin/projects/ ...FAILED

Open Gerrit with a JavaScript capable browser:

http://127.0.0.1/#/admin/projects/

~$

直到最后的指令结束,gerrit 初始化安装配置也就完成,安装配置过程中如果没有错,gerrit 服务就正常启动了。

# gerrit 初始化

~$ java -jar gerrit-2.15.19.war init -d /home/scm/review_site
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/home/scm/.gerritcodereview/tmp/gerrit_1484140920033380220_app/guice-4.2.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2020-09-22 01:19:58,385] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/scm/review_site/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 2.15.19
***

Create '/home/scm/review_site' [Y/n]? Y

*** Git Repositories
***

Location of Git repositories   [git]: git

*** SQL Database
***

Database server type           [h2]: postgresql
Server hostname                [localhost]:
Server port                    [(postgresql default)]: 5432
Database name                  [reviewdb]: gerritdb
Database username              [scm]: gerrit2
gerrit2's password             :
              confirm password :

*** NoteDb Database
***

Use NoteDb for change metadata?
  See documentation:
  https://gerrit-review.googlesource.com/Documentation/note-db.html
Enable                         [Y/n]?

*** 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]? y

*** Email Delivery
***

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

*** Container Process
***

Run as                         [scm]:
Java runtime                   [/usr/local/jdk11.0.7]:
Copy gerrit-2.15.19.war to /home/scm/review_site/bin/gerrit.war [Y/n]? Y
Copying gerrit-2.15.19.war to /home/scm/review_site/bin/gerrit.war

*** SSH Daemon
***

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

*** HTTP Daemon
***

Behind reverse proxy           [y/N]? y
Proxy uses SSL (https://)      [y/N]?
Subdirectory on proxy server   [/]:
Listen on address              [*]: 127.0.0.1
Listen on port                 [8081]:
Canonical URL                  [http://127.0.0.1/\]:

*** Cache
***

*** Plugins
***

Installing plugins.
Install plugin commit-message-length-validator version v2.15.19 [y/N]? y
Installed commit-message-length-validator v2.15.19
Install plugin download-commands version v2.15.19 [y/N]? y
Installed download-commands v2.15.19
Install plugin hooks version v2.15.19 [y/N]? y
Installed hooks v2.15.19
Install plugin replication version v2.15.19 [y/N]? y
Installed replication v2.15.19
Install plugin reviewnotes version v2.15.19 [y/N]? y
Installed reviewnotes v2.15.19
Install plugin singleusergroup version v2.15.19 [y/N]? y
Installed singleusergroup v2.15.19
Initializing plugins.

*** Experimental features
***

Enable any experimental features [y/N]?

Initialized /home/scm/review_site
Executing /home/scm/review_site/bin/gerrit.sh start
Starting Gerrit Code Review: WARNING: Could not adjust Gerrit's process for the kernel's out-of-memory killer.
         This may be caused by /home/scm/review_site/bin/gerrit.sh not being run as root.
         Consider changing the OOM score adjustment manually for Gerrit's PID=11095 with e.g.:
         echo '-1000' | sudo tee /proc/11095/oom_score_adj
OK
Waiting for server on 127.0.0.1:80 ... OK
Opening http://127.0.0.1/#/admin/projects/ ...FAILED
Open Gerrit with a JavaScript capable browser:
  http://127.0.0.1/#/admin/projects/
~$

配置有错就显示 ...FAILED ,说明安装配置过程中,有那个步骤配置肯定出错了,服务启动有异常,就需要重新检查一下配置文件,配置正确了重新启动就可以了。Gerrit 有两种工作方式,通常都采用的是 http 方式,也就是说登录 Web 页面,审核人员就可以对提交的代码进行评审以及后续的分支合并操作,所以下面就进行 Web 服务的安装。

四、安装 nginx 服务

执行下面的指令进行安装:

~$ sudo apt-get -y install nginx

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

顺利安装完成,默认服务已经启动,下面查看一下服务状态,执行下面的指令:

~$ systemctl status nginx

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

nginx 服务非常小,安装很快就结束了,下面进行 nginx 服务的配置。

进入到 nginx  的安装目录,显示如下:

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

进入到 sites-enabled 目录下,修改 default 文件,修改如下内容:

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

绿框中标注的就是要修改的内容,按实际环境修改即可。

然后在检查一下 gerrit 的配置,进入你初始化安装目录下,找到 gerrit.config 文件,修改如下:

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

绿框中标注的就是要修改及注意的内容,按实际环境修改即可。

五、最后安装  htpasswd

htpasswd 是 Apache 附带的程序,就是用来生成包含用户名和密码的文本文件。

只需要安装  apache2-utils 就可以了,执行下面的指令进行安装:

~$ sudo apt search htpasswd

~$ sudo apt-get -y install apache2-utils

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

安装完成,就可以执行指令来生成用户账户,用来登录 gerrit 系统了,执行下面的指令创建:

~$ htpasswd -c /home/scm/review_site/etc/passwords  scm

全部安装配置就结束了,下面分别启动 nginx 服务 跟 gerrit 服务,访问 Web 系统就用上面创建的用户来登录,看看登录页面效果吧。

Ubuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南

系统能正常访问登录,详细的安装配置也就结束了,希望对各位有帮助,觉得有帮助就点个赞吧!!!

在Windows下的Tomcat中安装Gerrit

https://blogs.sap.com/2013/06/03/install-gerrit-in-tomcat-under-windows/

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Android蓝牙连接汽车OBD设备
//设备连接public class BluetoothConnect implements Runnable {    private static final UUID CONNECT_UUID  UUID.fromString("0000110100001000800000805F9B34FB");
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这