Gerrit简易安装入门

原创
2011/10/08 10:26
阅读数 2.3W

2011-05-17 @ taobao

简介

Gerrit 是一个基于 Web 的代码评审和项目管理的工具,面向基于 Git 版本控制系统的项目.

 

下文以gerrit-2.1.7-rc1在Ubuntu10.04上的安装为例:

创建Gerrit用户(可选)

$ sudo adduser gerrit2
$ sudo su gerrit2
$ cd ~gerrit2

安装Gerrit

下载gerrit-$version-rc1.war;

执行:

$ java -jar gerrit-$version-rc1.war init -d review_site

命令行交互的安装过程如下:

Create '/home/gerrit2/review-site' [Y/n]?

*** Git Repositories
***

Location of Git repositories [git]:

*** SQL Database
***

Database server type [H2/?]:

*** User Authentication
***

Authentication method [OPENID/?]: http   
Get username from custom HTTP header [y/N]? :
SSO logout URL : 

*** Email Delivery
***

SMTP server hostname [localhost]: 
SMTP server port [(default)]:
SMTP encryption [NONE/?]:
SMTP username [gerrit2]: 
jushi@taobao.com's password :
confirm password :

*** Container Process
***

Run as [gerrit2]:
Java runtime [/usr/lib/jvm/java-6-sun-1.6.0.24/jre]:
Copy gerrit.war to /home/gerrit2/review-site/bin/gerrit.war [Y/n]?
Copying gerrit.war to /home/gerrit2/review-site/bin/gerrit.war

*** SSH Daemon
***

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


Gerrit Code Review is not shipped with Bouncy Castle Crypto v144
  If available, Gerrit can take advantage of features
  in the library, but will also function without it.
Download and install it now [Y/n]? 
Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK
Checksum bcprov-jdk16-144.jar OK
Generating SSH host key ... rsa... dsa... done
*** HTTP Daemon
*** 

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

Initialized /home/gerrit2/review-site
Executing /home/gerrit2/review-site/bin/gerrit.sh start
Starting Gerrit Code Review: OK

上面大部分的回答是用回车默认的, 值得注意的地方有:

  1. 认证方式没有选择OpenId, 而是http, 因为这样会使得gerrit对外部系统有依赖, 目前gerrit支持google和yahoo提供的openid, 进试用均不稳定(也许是托GFW福);
  2. SMTP配置中,请选择合适的服务地址和帐号;
  3. 选择需要反向代理支持, 这和http认证有关;
  4. 配置完后, 安装脚本会自动启动gerrit.

配置Apache2反向代理

$ sudo apt-get install apache2

在/etc/apache2/httpd.conf中加入一下内容

<VirtualHost *>
  ServerName gerrit2.example.com
  ProxyRequests Off
  ProxyVia Off
  ProxyPreserveHost On

  <Proxy *>
        Order deny,allow
        Allow from all
  </Proxy>
 
  <Location /login/>
     AuthType Basic
     AuthName "Gerrit Code Review"
     AuthBasicProvider file
     AuthUserFile $gerrit.home/etc/passwords
     Require valid-user
  </Location>

  ProxyPass / http://$gerrit.host:8081/
</VirtualHost>

注意, ProxyPass中$gerrit.host最好用服务器对外的ip地址代替.

创建访问Gerrit的用户

由于是通过apache进行http basic认证, 故账户创建使用类似下面的命令即可:

$ htpassword $gerrit.home/etc/passwords $username

注册访问Gerrit的用户

使用上面创建的帐号, 登录http://$gerrit.host,浏览器会自动跳转至注册页面, 输入Full Name, 保存;

这里顺便可完成公钥的上传

ssh key

点击Continue, 完成注册.

创建项目

添加公钥后, 最好在$User.Home/.ssh中创建文件config, 里面输入以下内容:

Host $shortname
User $username
Port 29418
Hostname $gerrit.host
IdentityFile $path/to/private/key$

这个文件是可选的, 只是为了方便执行ssh命令. 

创建项目就通过下面的命令完成:

$ ssh $gerrit.host gerrit create-project -n $project.name

这个命令会在$gerrrit.home/git下初始一个bare库, 相应的在webUI中也可看到新建的项目了.

更多命令行, 请见这里.

其他

上述大部分内容参考了这篇blog,你也可以看看. 剩下的就靠官方文档和Google了, Good luck!

展开阅读全文
打赏
1
17 收藏
分享
加载中
进来学习,进来支持。
2013/06/27 09:25
回复
举报
[error] [client 10.17.15.122] (13)Permission denied: Could not open password file: /home/gerrit1/review_site/etc/passwords
请问这个错误怎么改呀?
给权限了
给passwords和所在目录最高权限了
2013/04/28 14:11
回复
举报
请问大侠,出现这个错误是为什么?
Check the HTTP server's authentication settings.
The HTTP server did not provide the username in the Authorization
header when it forwarded the request to Gerrit Code Review.

If the HTTP server is Apache HTTPd, check the proxy configuration
includes an authorization directive with the proper location, ensuring
it ends with '/':

<VirtualHost kona-gerrit:8080>
ServerName kona-gerrit

ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
...
</Location>
ProxyPass / http://.../
</VirtualHost>
"....................................................................end
of error
2012/06/25 14:29
回复
举报
能把httpd.conf完整的配置给我一份吗?
2012/06/16 10:26
回复
举报
更多评论
打赏
4 评论
17 收藏
1
分享
返回顶部
顶部