安装gerrit+http

来源:互联网 发布:linux宕机日志在哪里 编辑:程序博客网 时间:2024/05/16 17:28
 安装maven
$ sudo apt-cache search maven
maven-debian-helper - Helper tools for building Debian packages with Maven
maven2 - Java software project management and comprehension tool
$ sudo apt-get install maven2


使用gerrit版本
gerrit2@ubuntu:~/env$ ls -l gerrit-2.6-rc1.war 
-rw-r--r-- 1 gerrit2 gerrit2 30220186 2013-04-30 09:08 gerrit-2.6-rc1.war


使能apache2反向代理模块
gerrit2@ubuntu:/etc/apache2/mods-enabled$ ls -l proxy.conf proxy.load  proxy_http.load 
lrwxrwxrwx 1 root root 28 2013-04-30 11:40 proxy.conf -> ../mods-available/proxy.conf
lrwxrwxrwx 1 root root 33 2013-04-30 11:40 proxy_http.load -> ../mods-available/proxy_http.load
lrwxrwxrwx 1 root root 28 2013-04-30 11:40 proxy.load -> ../mods-available/proxy.load


apache2配置文件
gerrit2@ubuntu:/etc/apache2$ cat sites-enabled/default 
<VirtualHost *:80>
ServerName 192.168.1.99
ProxyRequests Off  
ProxyVia Off  
ProxyPreserveHost On  


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


<Location />
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user


AuthBasicProvider file
AuthUserFile /home/gerrit2/review_site/etc/passwords
</Location>


ProxyPass / http://127.0.0.1:8080/
</VirtualHost>


gerrit配置文件
gerrit2@ubuntu:~/review_site$ cat etc/gerrit.config 
[gerrit]
        basePath = git
        canonicalWebUrl = http://192.168.1.99
[database]
        type = h2
        database = db/ReviewDB
[auth]
        type = HTTP
[sendemail]
        smtpServer = localhost
[container]
        user = gerrit2
        javaHome = /opt/jdk1.6.0_25/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = proxy-http://127.0.0.1:8080/



创建http登陆认证账号和密码
gerrit2@ubuntu:~/review_site$ cat etc/passwords 
root:HtY1xg.w42PRM
admin:F5Sab3S01LcYE


启动apache2和gerrit服务
$ sudo /etc/init.d/apache2 restart
$ sudo /home/gerrit2/review_site/bin/gerrit.sh restart


http方式下载代码测试

$ cat .netrc 
machine 192.168.1.99 login root password oswzb
$ git clone http://192.168.1.99/env/git.git 
正克隆到 'git'...
remote: Counting objects: 23755 


http方式上传代码测试



查看gerrit使用了哪些端口
$ sudo netstat -ltpn | grep -i gerrit
[sudo] password for os-weizb: 
tcp6       0      0 :::29418                :::*                    LISTEN      5301/GerritCodeRevi
tcp6       0      0 127.0.0.1:8080          :::*                    LISTEN      5301/GerritCodeRevi


1. gerrit管理员之web界面配置

  优点:直观,鼠标点点即可
  缺点:有些gerrit设置没有提供web界面配置,需要直接修改数据库




2. gerrit管理员之命令行远程直接操作数据库(h2)的配置
  优点:高效, 不需要停止gerrit服务就可以直接操作数据库
  缺点:在web界面往往无法配置对gerrit的一些设置,需要直接修改数据库


  ssh连接长命令方式访问
  $ ssh -p 29418 192.168.1.99 -l root  


  ssh连接短命令方式访问
  通过配置~/.ssh/config文件来为ssh连接设置别名
  $ vi /home/os-weizb/.ssh/config 
    Host ha
      HostName 192.168.1.99
      User root
      Port 29418
      IdentityFile ~/.ssh/id_rsa


  $ ssh ha




2.2  ssh进入gerrit管理员模式
$ ssh ha gerrit
Available commands of gerrit are:


   approve              Verify, approve and/or submit one or more patch sets
   ban-commit           Ban a commit from a project's repository
   create-account       Create a new batch/role account
   create-group         Create a new account group
   create-project       Create a new project and associated Git repository
   flush-caches         Flush some/all server caches from memory
   gc                   Run Git garbage collection
   gsql                 Administrative interface to active database
   ls-groups            List groups visible to the caller
   ls-projects          List projects visible to the caller
   ls-user-refs         List refs visible to a specific user
   plugin               
   query                Query the change database
   receive-pack         Standard Git server side command for client side git push
   rename-group         Rename an account group
   review               Verify, approve and/or submit one or more patch sets
   set-account          Change an account's settings
   set-project          Change a project's settings
   set-project-parent   Change the project permissions are inherited from
   set-reviewers        Add or remove reviewers on a change
   show-caches          Display current cache statistics
   show-connections     Display active client SSH connections
   show-queue           Display the background work queues, including replication
   stream-events        Monitor events occurring in real time
   test-submit          
   version              Display gerrit version


See 'gerrit COMMAND --help' for more information.




2.3 查看gerrit有哪些组
$ ssh ha gerrit ls-groups
Administrators
Anonymous Users
Non-Interactive Users
Project Owners
Registered Users


2.4 查看gerrit有哪些项目
$ ssh ha gerrit ls-projects
env/gerrit
env/git
env/git-repo


3. gerrit管理员之命令行服务端直接操作数据库(h2)的配置
  优点:不需要认证,尤其是在管理员账号尚未建立之前就可以查看和更改数据库
  缺点:先登录到服务器,而且操作数据库时还需要先停止服务


3.1 进入gerrit超级管理员模式
gerrit2@ubuntu:~/review_site$ ./bin/gerrit.sh stop
Stopping Gerrit Code Review: OK
gerrit2@ubuntu:~/review_site$ ls bin
gerrit.sh  gerrit.war
gerrit2@ubuntu:~/review_site$ java -jar bin/gerrit.war gsql
[2013-05-01 01:05:57,003] INFO  com.google.gerrit.server.git.LocalDiskRepositoryManager : Defaulting core.streamFileThreshold to 220m
Welcome to Gerrit Code Review 2.6-rc1
(H2 1.3.168 (2012-07-13))


Type '\h' for help.  Type '\r' to clear the buffer.


gerrit> \h
General
  \q        quit


Query Buffer
  \g        execute the query buffer
  \p        display the current buffer
  \r        clear the query buffer


Informational
  \d        list all tables
  \d NAME   describe table


gerrit> \d
                     List of relations
 TABLE_SCHEM | TABLE_NAME                           | TABLE_TYPE
 ------------+--------------------------------------+-----------
 PUBLIC      | ACCOUNTS                             | TABLE
 PUBLIC      | ACCOUNT_DIFF_PREFERENCES             | TABLE
 PUBLIC      | ACCOUNT_EXTERNAL_IDS                 | TABLE
 PUBLIC      | ACCOUNT_GROUPS                       | TABLE
 PUBLIC      | ACCOUNT_GROUP_INCLUDES_BY_UUID       | TABLE
 PUBLIC      | ACCOUNT_GROUP_INCLUDES_BY_UUID_AUDIT | TABLE
 PUBLIC      | ACCOUNT_GROUP_MEMBERS                | TABLE
 PUBLIC      | ACCOUNT_GROUP_MEMBERS_AUDIT          | TABLE
 PUBLIC      | ACCOUNT_GROUP_NAMES                  | TABLE
 PUBLIC      | ACCOUNT_PATCH_REVIEWS                | TABLE
 PUBLIC      | ACCOUNT_PROJECT_WATCHES              | TABLE
 PUBLIC      | ACCOUNT_SSH_KEYS                     | TABLE
 PUBLIC      | CHANGES                              | TABLE
 PUBLIC      | CHANGE_MESSAGES                      | TABLE
 PUBLIC      | PATCH_COMMENTS                       | TABLE
 PUBLIC      | PATCH_SETS                           | TABLE
 PUBLIC      | PATCH_SET_ANCESTORS                  | TABLE
 PUBLIC      | PATCH_SET_APPROVALS                  | TABLE
 PUBLIC      | SCHEMA_VERSION                       | TABLE
 PUBLIC      | STARRED_CHANGES                      | TABLE
 PUBLIC      | SUBMODULE_SUBSCRIPTIONS              | TABLE
 PUBLIC      | SYSTEM_CONFIG                        | TABLE
 PUBLIC      | TRACKING_IDS                         | TABLE


gerrit> 


设置/修改用户邮箱

管理员ssh远程设置/修改用户的邮箱地址通过gerrit set-account修改
$ cat ~/.ssh/config 
Host ha
    HostName 192.168.1.99
    User root
    Port 29418
    IdentityFile ~/.ssh/id_rsa

$ ssh ha gerrit set-account --add-email foo@foo.com foo


参考 http://fatalove.iteye.com/blog/1332881
原创粉丝点击