ala咪s / SCM_gerrit / gerrit setup

分享

   

gerrit setup

2013-03-19  ala咪s
分类: Android2012-07-03 17:30
    虽然现在gerrit服务器的架设,只是实现了一小部分。但对其他要架设的人员来说,或许已经足够,因为剩下的只是项目和人员权限问题的设置。
    我还有一个问题没实现的是:“单独控制repo项目权限”,就是不要所有项目权限都继承All-project.git,要每个项目的继承不同。有知道的人,麻烦赐教了,省得我再去查资料。
    (原来是gerrit set-project-parent)

(有提供资料了,还是看不懂,就不能怪别人了 泪奔 ,要好好学习英语了)

主要介绍我在创建gerrit服务器时遇到的问题,其他gerrit介绍和资料可以查阅参考资料(只是有些资料会与真实情况不符合,可能是版本问题)。

一、创建gerrit服务器

$ java -jar gerrit-2.4.1.war init -d review_site 

注意选择http 

Authentication method          [OPENID/?]: http

Starting Gerrit Code Review: OK

Waiting for server to start ... OK

Opening browser ...

浏览器提示configuration error。

二、设置apache2代理

$ sudo apt-get install apache2

我在安装过程中,由于我的ubuntu系统出现点问题,没有完全安装成功,但我以为成功,导致在apache2配置中花费大量时间。

Apache2安装成功后,需要做如下配置修改(参考资料)

1httpd.conf  

$ sudo gedit /etc/apache2/httpd.conf

(1)、AuthUserFile

需要通过htpasswd创建passwords

$ htpasswd -c /home/XXXX/review_site/etc/passwords "gerrit_manager"

gerrit服务器配置成功后,可使用gerrit_manager登录

2)、ProxyPass

需要跟gerrit配置中的地址一致。

$ cat /review_site/etc/gerrit.config

2、启动apache2

sudo /etc/init.d/apache2 start

sudo /etc/init.d/apache2 stop

sudo service apache2 restart

启动时提示ProxyRequests等错误,则需要激活代理模块。

sudo ln -s /etc/apache2/mods-available/proxy.conf /etc/apache2/mods-enabled/proxy.conf

sudo ln -s /etc/apache2/mods-available/proxy.load /etc/apache2/mods-enabled/proxy.load

sudo ln -s /etc/apache2/mods-available/proxy_http.load /etc/apache2/mods-enabled/proxy_http.load

创建此些链接时,如失败,则需要检查ubuntu系统,应该为apache2安装过程出现错误。卸载,后重新安装。

启动apache2成功后,再进入http://192.168.X.X/,提示输入用户名和密码,此时可输入在passwords中创建的用户名和密码,此用户为gerrit服务器的管理者。
登录成功后,可能提示重定向循环错误问题,稍等一下,再进入http://192.168.X.X/就可以。
至此,gerrit服务器搭建完成。接下来还要做用户管理和项目创建管理,代码审核提交等工作。

三、创建gerrit用户

1、加入ssh key

登录成功后,需要setting加入ssh key

然后查看用户ssh连接性

$ ssh -p 29418 gerrit_manager@192.168.X.X

  ****    Welcome to Gerrit Code Review    ****

  Hi gerrit manager, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.

  To clone a hosted Git repository, use:

  git clone ssh://gerrit_manager@192.168.X.X:29418/REPOSITORY_NAME.git

Connection to 192.168.X.X closed.

这里的gerrit_manager@192.168.X.X即为gerrit登录用户名@gerrit服务器地址至此gerrit管理者连接成功

       2、注册邮箱(用于提交代码自动发送邮件)

右上角Anonymous coward1000000)表示为当前用户的用户名和权限,1000000表示为管理员。用户名和邮箱可在settingà Contact Infomation修改。

修改full name后,右上角的Anonymous coward将变成修改后的名字。注意需要registert email,但经常提示application error,这个可以通过修改数据库解决。这个email很重要,需要跟.gitconfig中的一样,否则提交代码时会提示失败。

1)、.gitconfig中用户名和邮箱查看和修改

.gitconfig中用户名和邮箱是git创建时生成的,可以修改。

$ git config --global user.name "name"

$ git config --global user.email "mail"

2)、gerrit数据库修改


3、用户组和用户权限管理

1)、创建用户组,增加用户组成员。
2)、用户组对项目操作权限和其他设置修改

四、创建、导入git项目并提交修改

创建gerrit服务器时,项目存在目录为/review_site/git,默认有All-Projects.git项目。

如果已有项目,可以直接复制到/review_site/git目录。

1、创建git项目。

创建新项目并提交,很多资料都有详细介绍(http://www.infoq.com/cn/articles/Gerrit-jenkins-hudson),如果用户注册邮箱和git邮箱一致,基本没有其他问题。

 

$ git push origin

Counting objects: 3, done.

Writing objects: 100% (3/3), 216 bytes, done.

Total 3 (delta 0), reused 0 (delta 0)

remote: Processing changes: new: 1, done    

To ssh://gerrit_manager@192.168.X.X:29418/example.git

 * [new branch]      master -> refs/for/master


2、导入已有repo项目


由于安装的gerrit版本有所不同,网上介绍的方法适用于旧版本,新版本(2.4.1)可直接复制,但记得重启gerrit

呼,这个问题花费了我三分二的时间,结果竟然只是复制重启,我汗。

 

五、注意点

1、登录成功后重定向循环问题。

此问题不是我亲自解决,只是我看最后结果做出的猜想

1)、删除/etc/apache2/httpd.conf的修改。

2)、修改gerrit.config如下

[gerrit]

        basePath = git

        canonicalWebUrl = http://192.168.X.X/

[database]

        type = H2

        database = db/ReviewDB

[auth]

        type = HTTP

[sendemail]

        smtpServer = localhost

        smtpServerPort = 25

        smtpUser = root

[container]

        user = root

        javaHome = /usr/lib/jvm/java-6-sun-1.6.0.22/jre

[sshd]

        listenAddress = *:29418

[httpd]

        listenUrl = proxy-http://*:8081/

[cache]

        directory = cache

 

2sendmail配置

此问题也不是我亲自解决。Sendmail如没有配置,registemail会提示失败,提交审核结果也不会自动发送邮件。其他功能是否有影响,暂不清楚。

3.shh/.config配置(非必须)

Host 192.168.X.X

     user gerrit_manager

     Port 29418

     Hostname 192.168.X.X

     IdentityFile ~/.ssh/id_rsa

此配置在连接服务器时,可以由ssh://gerrit_manager@192.168.X.X:29418/.........

省略为ssh://192.168.X.X:29418/.........


以上为我个人拙见,有错之处,欢迎指正,谢谢!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。如发现有害或侵权内容,请点击这里 或 拨打24小时举报电话:4000070609 与我们联系。

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多
    喜欢该文的人也喜欢 更多

    ×
    ×

    ¥.00

    微信或支付宝扫码支付:

    开通即同意《个图VIP服务协议》

    全部>>