打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Ubuntu环境上使用Nginx搭建Gerrit

Contents [hide]

    • 1.1 安装java环境
    • 1.2 安装nginx
    • 1.3 安装密码管理器htpasswd
    • 1.4 下载gerrit安装包
  • 二、配置gerrit
    • 2.1 创建gerrit专用账户
    • 2.3 安装gerrit
    • 2.4 修改gerrit配置文件
    • 2.5 添加gerrit的nginx配置文件
    • 2.6 gerrit用户账号管理
      • 2.6.1 新建配置文件并添加用户账号
      • 2.6.2 增加用户账号
    • 2.7 重启服务
      • 2.7.1 重启nginx
      • 2.7.2 重启gerrit服务
  • 三、问题调查

Gerrit,一种开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件开发者,可以相互审阅彼此修改后的代码,决定是否能够提交,回退或是继续修改。它使用版本控制系统Git作为底层,已经被广泛的应用到了各大公司的代码 review中。对于不太习惯使用git diff/difftool来查看两个相邻提交差异的同学来讲,gerrit也是一个不错的选择,当然,这样显然是大材小用了。不管如何,gerrit已经像git一样成为程序员必备的技能了。对于想学习而又没有gerrit环境的同学,可以参考本文在ubuntu电脑上快速搭建一个。

本文将基于以下环境使用nginx实现反向代理来搭建一个gerrit服务器:

  • ubuntu版本: 16.04
  • kernel版本: Linux version 4.4.0-137-generic
  • 服务器IP地址:104.238.167.38

注意:软件版本的不同有可能会导致即使相同的配置,最终不能正常工作。如果对相关软件不太熟悉的,请务必选用与本文一致的软件版本。

一、下载安装必要的软件

1.1 安装java环境

gerrit是一个java软件,因此需要安装JDK,这里我们使用openjdk-8。安装命令如下:

sudo add-apt-repository ppa:openjdk-r/ppa && sudo apt-get update && sudo apt-get install openjdk-8-jdk -y

1.2 安装nginx

Nginx是一款轻量级的web服务器软件,它将提供供我们访问的gerrit服务器。安装命令如下:

sudo apt-get install nginx -y

安装成功后在你的浏览器中输入服务器的IP地址,如果看到下面的显示,则表明Nginx已正确安装。

1.3 安装密码管理器htpasswd

htpasswd用于建立和更新登陆gerrit服务器的存储用户名/密码的文本文件。它是apache工具集下的一个工具,因此我们需要安装apache-utils。安装命令如下:

sudo apt-get install apache2-utils -y

1.4 下载gerrit安装包

安装包可以直接点击 gerrit release note页面下载 ,或者直接使用下面命令下载:

wget https://gerrit-releases.storage.googleapis.com/gerrit-2.15.4.war

二、配置gerrit

到目前为止安装gerrit依赖的所有软件已经准备完毕,下面我们来开始安装。在安装前,需要说明一点的是:安装gerrit最好在服务器上新建一个user,这个账户只用来安装、配置并启动gerrit服务,因此,不需要赋给它更多的权限(比如root权限),而修改nginx的配置文件需要使用具有root权限的账户。因此,下文中涉及到修改gerrit配置文件,请切换回gerrit专用账户;其他操作(比如修改nginx配置文件),请使用具有root权限的账户

2.1 创建gerrit专用账户

使用下面的命令创建一个gerrit专用账户,账户名字就叫做gerrit:

sudo adduser gerritsu gerritcd ~

2.3 安装gerrit

接着使用下面的命令来安装gerrit(注意,这里应该使用gerrit专用账户)

java -jar ./gerrit-2.15.4.war init -d ~/gerrit_site

安装过程很简单,只需要使用默认的配置,一路回车下去就行了,只是在Authentication method方式时输入http

2.4 修改gerrit配置文件

安装的时候我们基本选择了默认配置,但是其中有两项是需要修改的。gerrit的配置文件具体路径为:/home/gerrit/gerrit_site/etc/gerrit.config

完整的文件如下,我们需要只需要修改第4行和第28行即可:

1 [gerrit] 2 basePath = git 3 serverId = 2d5e17e4-a507-424d-b5cd-f63d8e08e6fd 4 canonicalWebUrl = http://104.238.167.38:8085/ 5 [database] 6 type = h2 7 database = /home/gerrit/gerrit_site/db/ReviewDB 8 [noteDb 'changes'] 9 disableReviewDb = true 10 primaryStorage = note db 11 read = true 12 sequence = true 13 write = true 14 [index] 15 type = LUCENE 16 [auth] 17 type = HTTP 18 [receive] 19 enableSignedPush = false 20 [sendemail] 21 smtpServer = localhost 22 [container] 23 user = gerrit 24 javaHome = /usr/lib/jvm/java-8-openjdk-amd64/jre 25 [sshd] 26 listenAddress = *:29418 27 [httpd] 28 listenUrl = proxy-http://*:8085/ 29 [cache] 30 directory = cache

其中第4行表示要替换成你自己服务器的ip地址(104.238.167.38是我的服务器IP地址),端口号自己选择一个当前未被占用的即可。第28行意思是使用反向代理,端口号要和第4行的设置成一样。

2.5 添加gerrit的nginx配置文件

接下来,需要为nginx添加gerrit的配置文件(注意,这里我们需要切换为拥有root权限的账户)。添加的目录为:/etc/nginx/conf.d。在其下面新建一个文件命名为gerrit.conf,然后将下面内容写入该文件,并保存。

server {     listen *:358;     server_name localhost;     allow   all;     deny    all;     auth_basic 'Welcomme to Gerrit Code Review Site!';     auth_basic_user_file /home/gerrit/gerrit_site/etc/gerrit.passwd;     location / {        proxy_pass  http://127.0.0.1:8085;        proxy_set_header X-Forwarded-For $remote_addr;        proxy_set_header Host $host;     }   }

其中,listen表示nginx对外监听的端口号,设置成任意一个未被占用的即可(我这里设置成了358)。proxy_pass这句里面的端口号应该和gerrit配置文件(即2.4中的gerrit.config)里设置的一样。

2.6 gerrit用户账号管理

下面我们使用htpasswd工具来建立和增加可登陆的gerrit账号(注意,这里应该使用gerrit专用账户)

2.6.1 新建配置文件并添加用户账号

sudo htpasswd -c /home/gerrit/gerrit_site/etc/gerrit.passwd administrator

这里我们在/home/gerrit/gerrit_site/etc/目录下新建了一个名为gerrit.passwd的密码配置文件,并添加了一个名为administrator的用户账号。

2.6.2 增加用户账号

sudo htpasswd -m /home/gerrit/gerrit_site/etc/gerrit.passwd user1

使用-m参数表示添加一个账户。这里我们在上述密码配置文件中添加了一个名为user1的用户账号。

2.7 重启服务

2.7.1 重启nginx

使用下列命令重启nginx(注意,这里我们需要切换为拥有root权限的账户)

sudo /etc/init.d/nginx restart

2.7.2 重启gerrit服务

重启gerrit服务(注意,这里应该使用gerrit专用账户)

/home/gerrit/gerrit_site/bin/gerrit.sh restart

然后,打开浏览器访问104.238.167.38:358(IP地址即为服务器的IP,端口号应为nginx监听的端口号),即可看到gerrit登陆界面:

然后输入账号登陆后,如果显示下面的画面,证明一切配置正常,gerrit就可以正常使用了。

注意,gerrit默认第一次成功登陆的账户为gerrit服务器的管理员账户,它拥有整个gerrit系统的最大权限,包括但不限于新建project,新增group,配置所有用户或者group对project的访问、代码下载、push和submit等权限,所以登陆的时候务必慎重!

三、问题调查

gerrit登陆出错,有各种各样的问题,请试着先从以下思路看看能否解决:
1. 使用2.7.2提供的命令,重启nginx,然后重新gerrit。如果重启失败,查看gerrit启动log,一般位于/home/gerrit/gerrit_site/logs/error_log
2. 如果重启成功,但是登陆失败,请查看nginx的log,一般位于:/var/log/nginx目录下。对于log中的错误,可以自行google解决。
3. 实在不行的话,可以考虑删掉gerrit的安装目录,即/home/gerrit/gerrit_site/重新安装。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【技巧】简单四步加强Linux系统安全
在 Ubuntu 16.04 为 Nginx 服务器安装 LEMP 环境(MariaDB,PHP 7 并支持 HTTP 2.0)
mac上安装配置启动nginx,实现反向代理
CentOS 7 用户账户配置
修改svn的配置文件并对密码加密
Nginx实战之让用户通过用户名密码认证访问web站点
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服