563
查看Gerrit服务器搭建的源代码
Gerrit服务器搭建
0
←
Gerrit服务器搭建
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
你被禁止执行你刚才请求的操作。
您可以查看并复制此页面的源代码:
== -、安装jdk == ===1、下载=== ===2、将下载的tar.gz解压=== ===3、更改 /etc/profile文件,在末处加入以下内容=== <pre> export JAVA_HOME=/usr/java/jdk1.8.0_25 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar:$JAVA_HOME/lib/rt.jar </pre> ===4、新打开一个shell,输入java -version,能看到版本号就代表安装成功了=== <pre> zmk@zmk-G41M-ES2L:~$ java -version java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) </pre> == 二、安装gerrit == ===1、下载gerrit=== ===2、进入tomcat下面的webapps目录,安装war=== java -jar gerrit.war init -d gerrit 一路回车下去(后面再更改配置文件) 打开 http://192.168.199.110:8080/ ,这个网址可以通过下面这条命令获取: <pre> admin@zmk-G41M-ES2L:~$ git config -f ~/gerrit/etc/gerrit.config gerrit.canonicalWebUrl http://zmk-G41M-ES2L:8080/ </pre> 考虑到局域网跨机访问,建议把机器名域名(可以让局域网所有机器改host文件),编辑 ~/gerrit/etc/gerrit.config: <pre> [gerrit] basePath = git canonicalWebUrl = http://gerrit.myserver.org:8080/ </pre> *尤其注意,虽然生成的文件在目录 gerrit下面,但URL并非 http://xxxx:8080/gerrit/ 浏览器一直显示: Loading Gerrit Code Review ... 这是因为默认的认证方式是用于和github之类关联的 OPENID,如果不配置是会出错的,我们把认证方式改一下 vim gerrit/etc/gerrit.config 把认证项改成: <pre> [auth] type = HTTP </pre> 重启 gerrit服务: $ gerrit/bin/gerrit.sh restart * gerrit-2.10需要再运行以下命令,否则 restart时会失败: $ java -jar gerrit-2.10.war reindex 再访问: <pre> Configuration Error Check the HTTP server's authentication settings. The HTTP server did not provide the username in the Authorization header when it forwarded the request to Gerrit Code Review. ... </pre> 出现上面这个错误,是因为使用HTTP方式必须配置反向代理,如果仅仅是为了尝试一下,可以将auth type配置成 development_become_any_account(言下之意任意访问者都能注册) *这里可能会奇怪,到目前为止,服务器没有安装任何网页服务啊,这是怎么show出来的?——这是因为 gerrit自带了 jetty服务器 ===3、安装apache、配置反向代理=== *首先更改gerrit配置,使能代理;另外使用代理后就直接使用apache的80端口访问了,需要把8080去掉 <pre> [gerrit] basePath = git canonicalWebUrl = http://gerrit.myserver.org/ ... [httpd] listenUrl = proxy-http://127.0.0.1:8080/ </pre> *安装apache2 apt-get install apache2 *配置apache :在ubuntu 12.04上,apache配置路径为 /etc/apache2/apache2.conf,不过使能模块不用直接更改这个文件,只要进入/etc/apache2/mods-enabled,创建软链接即可: <pre> root@zmk-G41M-ES2L:/etc/apache2/mods-enabled# ln -s ../mods-available/proxy.conf proxy.conf root@zmk-G41M-ES2L:/etc/apache2/mods-enabled# ln -s ../mods-available/proxy.load proxy.load root@zmk-G41M-ES2L:/etc/apache2/mods-enabled# ln -s ../mods-available/proxy_http.load proxy_http.load </pre> *配置虚拟主机,在这个主机中使能代理,修改 /etc/apache2/httpd.conf,末尾加入以下内容: <pre> <VirtualHost *> ServerName gerrit.myserver.org ProxyRequests Off ProxyVia Off ProxyPreserveHost On <Proxy *> Order deny,allow Allow from all </Proxy> <Location /login/> AuthType Basic AuthName "Gerrit Code Review" AuthBasicProvider file AuthUserFile /home/admin/gerrit/etc/passwords Require valid-user </Location> AllowEncodedSlashes On ProxyPass / http://127.0.0.1:8080/ nocanon </VirtualHost> </pre> *[http://gerrit-documentation.googlecode.com/svn/Documentation/2.6/config-reverseproxy.html The two options AllowEncodedSlashes On and ProxyPass .. nocanon are required since Gerrit 2.6.],这两个必须设置,否则在 gerrit/git/下创建子目录时将会出现访问出错 *ServerName配置的是主机的域名或者ip,如果用localhost那就相当于只能本机访问 === 4、生成第一个gerrit帐户=== 第一个帐户会默认为管理员 <pre> admin@zmk-G41M-ES2L:~$ touch /home/admin/gerrit/etc/passwords admin@zmk-G41M-ES2L:~$ htpasswd /home/admin/gerrit/etc/passwords "root" New password: Re-type new password: Adding password for user root </pre> 重启 apache: /etc/init.d/apache2 restart 再用浏览器打开看一下,注意现在是通过apache代理访问,所以只要输入 http://192.168.199.110 使用apache默认的80端口就可以了,不是 http://192.168.199.110:8080 这时提示要用户密码,输入刚刚创建的 root——久违的界面终于出来了! === 5、配置gerrit服务官方邮箱 === 编辑 gerrit/etc/gerrit.config <pre> [sendemail] smtpServer = smtp.exmail.qq.com smtpServerPort = 465 smtpEncryption = SSL smtpUser = xxx@exmail.qq.com smtpPass = your_passwad from = xxx@exmail.qq.com </pre> 如此,在gerrit用户设置/修改自己邮箱时就会通过这个邮箱发出验证链接 == 三、使用 gerrit简单示例 == 在.ssh目录下创建config文件,加入以下内容: <pre> Host gerrit User root Port 29418 Hostname 192.168.199.110 IdentityFile ~/.ssh/id_rsa </pre> 这样就不用每次都输入 "ssh -p 29418 root@192.168.199.110 xxx"了,可以简化,直接输: ssh gerrit xxx *注意,windows下使用 Git Bash也直接用这个文件即可,无需更改 IdentityFile地址 *如果提示 "Bad owner or permissions on /home/xxx/.ssh/config",则更改一下文件权限 "chmod 600 ~/.ssh/config" 如创建一个git库: ssh gerrit gerrit create-project -n test_project 再列出当前所有git库: <pre> admin@zmk-G41M-ES2L:~$ ssh gerrit gerrit ls-projects test_project </pre> 此时,再通过浏览器查看,也可以找到这个git库 == 四、配置gitweb == 安装gitweb,再配置下gitconfig就ok了: <pre> admin@zmk-G41M-ES2L:~/WD/python$ sudo apt-get install gitweb admin@zmk-G41M-ES2L:~/WD/python$ git config --file ~/gerrit/etc/gerrit.config gitweb.cgi /usr/share/gitweb/gitweb.cgi admin@zmk-G41M-ES2L:~/WD/python$ vim /home/admin/gerrit/etc/gerrit.config admin@zmk-G41M-ES2L:~/WD/python$ vim /home/admin/gerrit/etc/gerrit.config admin@zmk-G41M-ES2L:~/WD/python$ git config --file ~/gerrit/etc/gerrit.config --unset gitweb.url admin@zmk-G41M-ES2L:~/WD/python$ ~/gerrit/bin/gerrit.sh restart Stopping Gerrit Code Review: OK Starting Gerrit Code Review: OK </pre> 刷新一下,是project -> list的右侧是不是多了 gitweb的链接? 这时,我们以管理员身份登陆 gerrit发现一切OK,但使用其他用户则发现点击 gitweb会打不开项目,提示 "not found",这时还需要配置一下 All-Project的权限: 为 refs/meta/config添加 Registered Users的read access权限。
返回
Gerrit服务器搭建
。
导航菜单
个人工具
   
个人维基
注册
登录
名字空间
页面
变换
查看
阅读
查看源代码
统计
查看历史
操作
搜索
导航
首页
Ubuntu
Android
C&CPP
Java
Python
大杂烩
最近更改
工具箱
所有页面
文件列表
特殊页面