ubuntu 12.04搭建gerrit代码审查环境

来源:互联网 发布:视频马赛克去除软件 编辑:程序博客网 时间:2024/06/07 07:31
 
一, 安装gerrit需要的环境
     1.  安装Apache2
               sudo apt-get install apache2
     2. 安装php5
                sudo apt-get install php5 libapache2-mod-php5
     3. 安装java
                $ wget http://openlinux.amlogic.com:8000/deploy/java/sun-java6-bin_6.26-2lucid1_amd64.deb  
          
$ wget http://openlinux.amlogic.com:8000/deploy/java/sun-java6-jdk_6.26-2lucid1_amd64.deb
          $ 
wget http://openlinux.amlogic.com:8000/deploy/java/sun-java6-jre_6.26-2lucid1_all.deb 
          $ 
sudo dpkg -i sun-java6*  
          
$ apt-get -f install 
二, 安装gerrit
     1.  新建一个linux账号,用于管理gerrit代码
            $ sudo adduser gerrit
        $ sudo su gerrit 
        $ cd ~
   
2. 下载gerrit安装包
        $ wget http://gerrit-releases.storage.googleapis.com/gerrit-2.8-rc3.war
   3. 安装下载包
        
$ java -jar gerrit-2.8-rc3.war init -d review
       在安装过程中,需要注意以下几点:
       
Database server type [H2/?]: //可改成MYSQL,根据自己的喜好来选数据库, 我这里选H2默认的
            
Authentication method [OPENID/?]: HTTP //默认是用google的OPENID, 这里我改为HTTP认证
            
SMTP server hostname [localhost]: mail.pptv.com //自己改成自己的邮箱smtp
            
SMTP username [?]: laibinluo //自己改成自己的邮箱
            
Listen on port [29418]: //如果同一个用户下建多个gerrit,请不用都公用29418这个端口号 如39418 49418 
            
Behind reverse proxy [y/N]? y //使用反向代理的话必须选择y来配置,默认是N 
            
Proxy uses SSL (https://) [y/N]? n
            
Subdirectory on proxy server [/]: /gerrit/ //可以选择直接跳过,那样你的gerrit最后的URL是http://192.168.33.11:80
       Listen on port [8081]: //切记,此端口号一定不要和apache2占用相同的端口号,多个gerrit可以8082 8083 8084
           由于我们这里是选择HTTP认证,需要反向代理, 所以我们要配置Apache。
 三,  配置Apache
      
1. 创建编辑apache配置文件,添加如下内容(下面以Ubuntu系统为例请注意不同操作系统apache配置文件的区别)也可配置 apache2.conf httpd.conf,我们这里配置的是/etc/apache2/sites-available/gerrit
           
$sudo vi /etc/apache2/sites-available/gerrit   //该文件为自己新建, 默认是该文件是不存在
           

        
这个配置文件的意思是,当访问任意(*)时,进行代理,代理到/gerrit/login/目录,并根据AuthUserFile请求用户名及密码,最终代理为http://127.0.0.1:8081/gerrit/
    2.  /home/gerrit/review/etc/gerrit.passwd该文件是不存在的,我们要创建它并保存新建的用户名及密码
         $ touch /home/gerrit/review/etc/gerrit.passwd
     
$ htpasswd /home/gerrit/review/etc/gerrit.passwd bingluo
     或
       
$sudo htpasswd -cb /home/gerrit/review/etc/gerrit.passwd bingluo 123456
        
第二次添加其他用户时,不要加-c了:
             $sudo htpasswd -b 
/home/gerrit/review/etc/gerrit.passwd test test
  3. 由于/etc/apache2/sites-available/gerrit是自己新建的, 默认是无效的,为了让它生效,要做以下几步:
           
$cd /etc/apache2/sites-enabled/
           
$sudo ln ../sites-available/gerrit .
           
$sudo vi /etc/apache2/http.conf //该文件是自己新建,在文件中加入以下内容
ServerName localhost 
           $cd /etc/apache2/mods-enabled
           $sudo ln -s /etc/apache2/mods-available/proxy.conf proxy.conf 
           
$sudo ln -s /etc/apache2/mods-available/proxy.load proxy.load  
          
$sudo ln -s /etc/apache2/mods-available/proxy_http.load proxy_http.load 
 四, 启动服务
        1. 重启或启动Apache
              $ 
sudo /etc/init.d/apache2 restart 
        2. 重启或启动gerrit服务器 
              
$review_site_project/bin/gerrit.sh start
五, 登陆gerrit 
         
在浏览器地址栏中输入:  192.168.33.11/gerrit/
         配置正常,用之前设置的用户名及密码应该是可以登陆到gerrit界面, 如下

      
六, 添加git项目到gerrit中
   1.  配置ssh
        
$ ssh-keygen
        
在.ssh文件夹里添加新文件config, 内容如下:
           
         测试连接
         
$ ssh gerritTest
         如果出现 ,
  1. Connection to 192.168.5.102 closed.
          表示连接成功,
          如果遇到错误:
                1)
 Agent admitted failure to sign using the key.
                2)
Permission denied (publickey,password).

          请在 .bashrc 中设置环境变量并重启bashrc:
                1)export SSH_AUTH_SOCK=0  
      2. 新建/检出GIT仓库
           1)  新建git仓库
               $ ssh gerritTest  gerrit create-project -n testProject  //该命令会创建review/git/testProject.git工程, 也可以在gerrit界面查看
           2)  查看本人仓库权限
               $  
ssh gerritTest gerrit ls-projects
           3) 检出仓库
               $  
git clone gerritTest:testProject

         

 七, 用户权限的开通

 八, 提交gerrit的代码,jenkins自动的进行编译打包    
 九, 提交本地git仓库到gerrit仓库
         脚本如下:
         
#!/bin/bash -x
         set -e 
        #PROJECT=${REPO_PROJECT}
        cd /home/gerrit/sourceCode/${REPO_PATH}/
        git checkout -b master HEAD || true
        #ssh gerrit gerrit create-project --name ${REPO_PROJECT}
        git remote add jidou ssh://gerrit/${REPO_PROJECT}.git || true
        git push jidou refs/heads/*:refs/heads/*
        cd - 

       终端命令: ~/bin/repo forall -c $(pwd)/create.sh

十,提交代码:
       
git push --no-thin orgin HEAD:google_r4.3      

十一,添加gitweb
     1. 安装gitweb
       sudo apt-get install gitweb
       vi /etc/gitweb.conf

       修改 $projectroot = "/home/git"

       将$projectroot设置为git代码库所在的文件夹 
    2、编辑配置文件,让gerrit能找到gitweb的安装目录就行了
       vim /data/gerrit/etc/gerrit.config
       添加
       [gitweb]
          cgi = /var/www/git/gitweb.cgi
    3、重启gerrit 

4. 修改权限
                    Reference:
refs/meta/config   // 添加read权限
 

  
 



0 0
原创粉丝点击