Gerrit代码审核服务器搭建全过程

转载请标明出处:http://blog.csdn.net/ganshuyu/article/details/8978614

环境:Ubuntu12.xx

1、建立专有帐户

sudo adduser gerrit

sudo passwd gerrit

su gerrit

2、配置Java环境

  从官网下载对应平台的JDK并安装:

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

  安装:

sudo tar zxvf ./jdk-7u45-Linux-i586.tar.gz -C /opt

完成后,配置相关环境变量

  $: vim ~/.bashrc

   添加如下环境变量:

  1. JAVA_HOME=/opt/jdk1.6.0_38  -->安装路径
  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:$PATH

3、从官网下载gerrit

http://code.google.com/p/gerrit/

4、安装gerrit

java -jar gerrit-full-2.5.2.war init -d review_site

  一路按回车,先以默认方式安装,之后再手动修改配置文件。

5、建立存放代码的目录

$:mkdir /home/gerrit/GerritResource

6、配置gerrit

$: vim review_site/etc/gerrit.config

  1. [gerrit]
  2. basePath = /home/gerrit/GerritResource    -->第5点创建的空目录
  3. canonicalWebUrl = http://10.10.90.160:8081/
  4. [database]
  5. type = H2                                 -->使用默认的H2数据库
  6. database = db/ReviewDB
  7. [auth]
  8. type = HTTP
  9. [sendemail]
  10. enable = true
  11. smtpServer = smtp.163.com
  12. smtpUser = <a target="_blank" href="mailto:abc@163.com">abc@163.com</a>      -->gerrit服务器用于发送邮件的邮箱
  13. smtpPass = email-passwd      -->邮箱密码
  14. from = <a target="_blank" href="mailto:abc@163.com">abc@163.com</a>           -->邮件中显示的发件人
  15. [container]
  16. user = gerrit
  17. javaHome = /opt/jdk1.6.0_38/jre
  18. [sshd]
  19. listenAddress = *:29418
  20. [httpd]
  21. listenUrl = proxy-http://10.10.90.160:8081/
  22. [cache]
  23. directory = cache

7、安装apache2服务器

  sudo apt-get install --reinstall apache2  apache2.2-common

8、配置apache2服务器

8.1、开启代理功能、复写功能(以下模块链接到mods-available)
          cd /etc/apache2/mods-enabled
          ln -s ../mods-available/proxy.load
          ln -s ../mods-available/proxy.conf
          ln -s ../mods-available/proxy_http.load
          ln -s ../mods-available/proxy_balancer.conf
          ln -s ../mods-available/proxy_balancer.load
          ln -s ../mods-available/rewrite.load
          ln -s ../mods-available/ssl.conf
          ln -s ../mods-available/ssl.load

8.2、配置apache2的监听端口

$: vi /etc/apache2/ports.conf

         ……
     NameVirtualHost *:80
     NameVirtualHost *:8080   -->仿照80端口,加上对8080端口的监听。
     Listen 80
     Listen 8080
         ……

8.3、配置反向代理

$: sudo vi /etc/apache2/httpd.conf

  1. ServerName ganshuyu.pbi.com
  2. <VirtualHost *:8080>        -->客户端访问:http:10.10.90.160:8081 会转到gerrit服务器的地址:http://10.10.90.160:8080 上
  3. ProxyRequests Off
  4. ProxyVia Off
  5. ProxyPreserveHost On
  6. AllowEncodedSlashes On
  7. RewriteEngine On
  8. RewriteRule ^/(.*) http://10.10.90.160:8081/$1 [NE,P]
  9. <Proxy *>
  10. Order deny,allow
  11. Allow from all
  12. </Proxy>
  13. <Location /login/>
  14. AuthType Basic
  15. AuthName "Gerrit Code Review"
  16. Require valid-user
  17. AuthBasicProvider file
  18. AuthUserFile /home/gerrit/review_site/etc/passwd
  19. </Location>
  20. ProxyPass / http://10.10.90.160:8081/
  21. </VirtualHost>

8.4、主配置文件中加入httpd.conf,使其生效

$: sudo vi /etc/apache2/apache2.conf

查看是否已包含:httpd.conf,如果没有,则加上如下这句话:

Include httpd.conf

9、设置第一个gerrit用户的帐号和密码
      $: touch ./review_site/etc/passwd
      $: htpasswd -b ./review_site/etc/passwd gerritUser1 123456789

(后续再添加gerrit用户可使用: $: htpasswd -b ./review_site/etc/passwd UserName PassWord )

10、开启gerrit服务器
      $: ./review_site/bin/gerrit.sh start

如果提示发生如下错误:
         ** ERROR: GERRIT_SITE not set
        则可按如下方法修改:
             $: vim gerrit.sh
                     在GERRIT_SITE变量被赋值之后加入下面这行,改变该变量的值。
                                  GERRIT_SITE=/home/gerrit/review_site

11、重启apache2服务器

$: sudo /etc/init.d/apache2 restart

12、访问: http://10.10.90.160:8080/  ,用gerritUser1用户登录:

至此,一个gerrit代码评审服务器已经搭建完成。接下来就需要完成往服务器里填充所需要管理的代码、制定代码入库流程、组员权限的分配等等更为精细的工作了。

Gerrit代码审核服务器搭建全过程的更多相关文章

  1. ubuntu搭建Gerrit代码审核服务器

    谷歌的 Android 开源项目在 Git 的使用上有两个重要的创新,一个是为多版本库协同而引入的 repo,另外一个重要的创新就是 Gerrit —— 代码审核服务器.Gerrit 为 git 引入 ...

  2. gerrit代码审核工具之“error unpack failed error Missing unknown”错误解决思路

    使用gerrit代码审核工具时遇到error: unpack failed: error Missing unknown d6d7c89bd1d77f44c5c8e99437aaffbfc0684e7 ...

  3. 软件测试-Svn服务器搭建全过程-基于Centos6.7-64bit

    本文详细介绍了在CentOs6.7-64bit服务器上搭建SVN版本控制服务 工具准备 CentOs6.7-64bit操作系统:关闭linux防火墙:设置定固IP--DHCP(动态):安装系统过程中开 ...

  4. Git服务器搭建全过程分步详解【转】

    转自:http://developer.51cto.com/art/201507/483448.htm GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用, ...

  5. Git服务器搭建全过程

    GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器. 下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用V ...

  6. Git服务器搭建全过程分步详解

    GitHub是一个免费托管开源代码的Git服务器,如果我们不想公开项目的源代码,又不想付费使用,那么我们可以自己搭建一台Git服务器. 下面我们就看看,如何在Ubuntu上搭建Git服务器.我们使用V ...

  7. gerrit代码简单备份方案分享

    由于前期部署了gerrit代码审核系统,开发调整后的线上代码都放到gerrit上,这就要求我们要保证代码的安全.所以,对gerrit代码的备份至关重要! 备份的策略是:1)先首次将gerrit项目代码 ...

  8. ubuntu搭建gerrit+gitweb代码审核系统

    一.Gerrit的简介 Gerrit是Google开源的一套基于web的代码review工具,它是基于git的版本管理系统.Google开源Gerrit旨在提供一个轻量级框架,用于在代码入库之前对每个 ...

  9. 实战搭建SVN代码版本服务器

    前言:公司要求搭建一台SVN代码版本管理服务器,用于管理所有代码资产: 项目架构图 1.环境安装 [root@host_centos ~]#yum –y install subversion mod_ ...

随机推荐

  1. cordova 整合 webpack vue

    cordova 是hybrid开发app的一个框架,通过js桥接原生api实现了js调用原生的一些功能:本打算学习下阿里的weex:可是一直打包不了,加上之前也用过cordova,打算使用cordov ...

  2. PHP实现插入排序

    插入排序思想: 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法. 它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描, 找到相应位置并插入.插入排序 ...

  3. Java Script 基础

    一. JS的简介 JavaScript是一种网页编程技术,经常用于创建动态交互网页 JavaScript是一种基于对象和事件驱动的解释性脚本语言,类似C语言和Java的语法 事先不编译:逐行执行:无需 ...

  4. 关于 Unity 的一些小细节,不注意可能会被“坑”一些时间。

    关于 Unity 的一些小细节,不注意可能会被"坑"一些时间. 最近因为一些"小"问题,总是需要找很久的原因,总结一下 UnityEngine.Input 在使 ...

  5. Java 接口和抽象类--缺省模式

    一个软件设计的好坏,我想很大程度上取决于它的整体架构,而这个整体架构其实就是你对整个宏观商业业务的抽象框架,当代表业务逻辑的高层抽象层结构 合理时,你底层的具体实现需要考虑的就仅仅是一些算法和一些具体 ...

  6. ORACLE里怎么能判断一个日期类型的字段是否为空,解决方法:is null

    ORACLE里怎么能判断一个日期类型的字段是否为空,解决方法:is null,解决方法:判断什么null都可以用is null.

  7. windows 10 下安装python 2.7

    下载msi的安装包: https://www.python.org/ftp/python/2.7.8/python-2.7.8.msi [incorrect] PS C:\Python27> . ...

  8. hdu 1596 find the safest road (dijkstra)

    Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条 ...

  9. Entity Framework(实体框架 EF)

    什么是Entity Framework呢(下面简称EF)? EF(实体框架)是ADO.NET中的一组支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架.ORM(对象关系映射框架):指的是面向 ...

  10. [BZOJ2429][HAOI2006]聪明的猴子(最小生成树)

    性质:最小生成树上任意两点间的最大边权,一定是这两点间所有路径的最大边权中最小的.证明显然. #include<cstdio> #include<cstring> #inclu ...