1

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

 2 years ago
source link: https://blog.51cto.com/u_12048894/5087485
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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 安装配置指南_java

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

二、安装 PostgreSQL 数据库

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

~$ sudo apt-get -y install postgresql postgresql-contribUbuntu 18.04+Postgresql 10+Gerrit 2.15.19+nginx 1.14 安装配置指南_jdk_02   ​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 安装配置指南_git_03

接着在查看一下数据库的服务状态,执行下面的指令: ​~$ sudo ps -ef|grep postgres

~$ sudo service postgresql status

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

以上操作 PostgreSQL 数据库就算安装完成,接着创建用户、创建数据库、给用户授权。   执行下面的操作,登录数据库。 ​~$ sudo -i -u postgres

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

查看所有数据库,执行下面的指令: ​postgres=# \l

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

执行下面指令,查看帮助: ​postgres=# \help

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

执行下面指令,显示用户及用户属性: ​postgres=# \du

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

  创建 gerrit 要使用的数据库,执行下面的指令创建: ​postgres-# create database gerritdb;

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

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

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

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

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

到此 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 安装配置指南_cglib_12

*** 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:

 ​​​

~$

直到最后的指令结束,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:

 ​

 ​​

 ​

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

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:

 ​

 ​​

 ​

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

四、安装 nginx 服务

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

~$ sudo apt-get -y install nginx

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

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

~$ systemctl status nginx

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

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

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

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

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

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

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

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

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

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

五、最后安装  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 安装配置指南_git_18

安装完成,就可以执行指令来生成用户账户,用来登录 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 安装配置指南_git_19

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

在Windows下的Tomcat中安装Gerrit

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK