gerrit服务器搭建总结

from:http://blog.****.net/yanxiangyfg/article/details/49947635

gerrit知识理解:

    gerrit代码审核服务器:  作为Git代码管理服务器,gerrit为git代码的提交引入了强制审核机制(除非特别的授权设置),所以也可以称gerrit服务器为代码审核服务器,其提供团队开发时的严格的代码审核入库机制,便于版本管理和版本安全。

    git:  版本控制的工具,gerrit是对git提交代码的一个可视化代码审核机制。

    gitweb: Gitweb提供了git版本库的图形化web浏览功能,能看代码库,提交日志等

搭建环境:

    服务器操作系统:ubuntu14.04

    gerrit所用包:gerrit-2.10.war ,此版本必须要用jdk7以上,本人用了jdk7.

搭建gerrit服务器步骤列表:

1.  ubuntu服务器安装git

2. ubuntu服务器安装jdk7

3. 安装gerrit服务器

4. 启动gerrit服务

5. 访问gerrit服务器

6.  gerrit账户设置

7.  gitweb安装

8. 权限FAQ


具体搭建步骤:

1.  ubuntu服务器安装git

[javascript] view plain copy
  1. sudo apt-get install git-core  
2.  ubuntu服务器安装jdk7

    1> 从官网下载对应平台的JDK:

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

     2> 安装jdk:sudo  tar  zxvf jdk-7u79-Linux-x64.tar.gz   /home/ubuntu/Software

     3> 配置jdk环境变量:

    打开/etc/profile, 在其中加入如下环境变量

[javascript] view plain copy
  1. export JAVA_HOME=/home/ubuntu/Software/jdk1.7.0_79  
  2. export JRE_HOME=$JAVA_HOME/jre  
  3. export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
  4. export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH  

     4>  在shell下执行Java -version,当打印出如下信息时表示jdk安装成功:

[javascript] view plain copy
  1. java version "1.7.0_79"  
  2. Java(TM) SE Runtime Environment (build 1.7.0_79-b15)  
  3. Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)  

3. 安装gerrit服务器

    1> 从官网下载gerrit包gerrit-2.10.war:http://code.google.com/p/gerrit/ 

    2> 建立存放代码的目录: $:mkdir /home/GerritResource,存放上传到gerrit的代码,在配置文件中设置

    3> 安装gerrit:

    在根目录创建一个gerrit服务安装目录,并把gerrit-2.10.war包放此目录。加入这里目录为:gerrit_server

[javascript] view plain copy
  1. $:cd /  
  2. $:sudo mkdir gerrit_server   #建立好此目录之后,把gerrit-2.10.war放此目录  
  3. $:java -jar gerrit-2.10.war init -d review_site安装gerrit。  
【注意:安装配置时,标红部分需要设置,其余一路回车保持默认】

[javascript] view plain copy
  1. [gerrit]  
  2.     basePath = /home/GerritResource       #第2点创建的空目录  
  3.     canonicalWebUrl = http://172.26.13.71:8080/   #服务器地址,后续在浏览器中通过此地址访问gerrit服务器  
  4. [database]  
  5.     type = h2                #h2为gerrit默认的一个数据库  
  6.     database = db/ReviewDB  
  7. [index]  
  8.     type = LUCENE  
  9. [auth]  
  10.     type = OPENID           #OPENID可以采用google及yahoo邮箱登录,所有需要注册一个账号来初始化登陆  
  11. [sendemail]  
  12.     smtpServer = localhost  
  13. [container]  
  14.     user = gerrit  
  15.     javaHome = /home/ubuntu/Software/jdk1.7.0_79/jre       #jdk中的jre路径  
  16. [sshd]  
  17.     listenAddress = *:29418         #ssh服务端口,保持默认  
  18. [httpd]  
  19.     listenUrl = proxy-http://*:8080/       #默认应该时8081,此处我设置为8080  
  20. [cache]  
  21.     directory = cache  
  22. [gitweb]  
  23.     cgi = /usr/lib/cgi-bin/gitweb.cgi   #gitweb为可视化代码库的一个组件,此处安装gitweb时自动产生,暂时不管。  

4. 启动gerrit服务

    安装完成之后,需要手动启动gerrit服务,在shell下执行如下命令启动:

[javascript] view plain copy
  1. $:cd /gerrit_server/review_sites/bin   #进入到gerrit安装目录下的bin目录。  
  2. $: . /gerrit.sh  start     #启动gerrit服务,停止为. /gerrit.sh  stop  

5. 访问gerrit服务器

在客户端(另外一个pc机上)的浏览器中输入服务器网址进入访问:http://172.26.13.71:8080,如图:

gerrit服务器搭建总结

看到上图界面说明服务器链接上去了,此时点击上图右上角的sign in然后看到如下截图,

gerrit服务器搭建总结

此时注册一个Yahoo ID进行登陆,由于本人之前注册过yahoo id,所有点击“Sign in with a Yahoo ID”进行登陆的时候没有出现输入用户名等界面,直接跳转到如下图时说明成功登陆了服务器:

gerrit服务器搭建总结

6.  gerrit账户设置

    第一个登陆的用户直接是administrator,系统自动创建ID为1000000的账号,点击上图右上角1000000账号的三角号下拉菜单有一个setting选项卡,点击开始账户设置,当设置玩账户只会,1000000会自动变成设置的用户名。

setting选项卡:

   profile-->Username设置为yanxiangyfg

   profile-->Fullname设置为yanxiangyfg

   Contact Information -->Full Name 设置为yanxiangyfg

   SSH Public Keys--->Add key中加入客户端的ssh公钥(shell中输入ssh-******,拷贝产生的~/.ssh/id_rsa.pub文件到此处,设置完成之后,在客户端就的git就可以用ssh协议来往gerrit服务器上传和下载代码了。


7.  gitweb安装

    1> 直接通过命令在服务器中安装:$: sudo apt-get install gitweb

    2> 通过git config配置一下:

[javascript] view plain copy
  1. git config --file /gerrit_server/review_sites/etc/gerrit.config gitweb.cgi $gitweb_path/gitweb.cgi   
  2. git config --file /gerrit_server/review_sites/etc/gerrit.config --unset gitweb.url  
【注::此处的“/gerrit_server/review_sites”为gerrit服务器安装目录,$gitweb_path变量为gitweb安装目录,可以用“find /  - name gitweb.cgi”命令找到路径】

    3> 重启gerrit服务,使得gitweb生效: 

[javascript] view plain copy
  1. /gerrit_server/review_sites/bin/gerrit.sh stop   #停止gerrit服务  
  2. gerrit_server/review_sites/bin/gerrit.sh start   #启动gerrit服务  
重启gerrit服务后gitweb生效,如下图,增加了一栏gitweb栏。

gerrit服务器搭建总结

 

8. 权限FAQ

    1> 在gerrit集成gitweb之后,发现只有我的root用户(gerrit里注册的第一个用户)才能够点gitweb链接正常打开gitweb页面。其他的普通用户点gitweb链接显示404错误

     解决:为项目的用户组增加了refs/meta/config的read,即在read标签中加入注册的用户组即可