一台服务器上运行多个Gerrit服务

来源:互联网 发布:绿谷网络 编辑:程序博客网 时间:2024/04/29 12:48
系统:Ubuntu 15.4

http://blog.csdn.net/u013686019/article/details/54382231

至于如何在Ubuntu上搭建Gerrit代码审核服务,基本操作网上都有;由于需要在一台服务器运行多个Gerrit服务,就把自己的搭建笔记记录下。流程及结果图示:


当然你也可以在同一个用户下建立并多个Gerrit服务,目录结构示例:

[/home/gerrit]$ lsgerrit-2.11.3.war  review_site1  review_site2

配置和下面将要讲述的完全一样,只要保证路径正确、端口不重复即可。

1、Java环境配置

配置环境变量而已,比如JDK安装在/usr/jdk_1_7/目录下,则配置可如下:

export JAVA_HOME=/usr/jdk_1_7/jdk1.7.0_80export JRE_HOME=$JAVA_HOME/jreexport CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATHexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

2、Gerrit安装

我为运行的两个Gerrit服务建立了各自独立的用户,以user1为例:

[current user]$ su <-- 切换到root[root]# adduser user1 <-- 创建user1[current user]$ su user1 <-- 切换到user1,然后进入home目录/home/user1[user1]$ java -jar gerrit-x-x.war init -d review_site <-- 安装,文件在~/review_site/目录

3、安装Apache2

[root]# apt-get install apache2[root]# cd /etc/apache2/mods-enabled[root]# ln -s ../mods-available/proxy.load proxy.load[root]# ln -s ../mods-available/proxy.conf proxy.conf[root]# ln -s ../mods-available/proxy_http.load proxy_http.load

4、配置user1下的gerrit运行环境:代理端口8081

[user1]$ cat /home/user1/review_site/etc/gerrit.config[gerrit]basePath = gitcanonicalWebUrl = http://192.168.1.99:8081/gerrit[database]type = h2database = db/ReviewDB[index]type = LUCENE[auth]type = HTTP[sendemail]enable = true        smtpServer = smtp.example.qq.com <-- 腾讯企业邮箱        smtpServerPort = 465        smtpEncryption = ssl        smtpUser = xxxx@xxx.com        smtpPass = ********        sslVerify = false        from = Code Review < xxxx@xxxx.com >[container]user = user1javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre[sshd]listenAddress = *:29418 <-- 多个Gerrit运行,记得该值不能重复[httpd]listenUrl = proxy-http://*:8081/gerrit[cache]directory = cache


5、配置user2下的gerrit运行环境:代理端口8091

[user2]$ cat /home/user2/review_site/etc/gerrit.config[gerrit]basePath = gitcanonicalWebUrl = http://192.168.1.99:8091/gerrit2[database]type = h2database = db/ReviewDB[index]type = LUCENE[auth]type = HTTP[sendemail]enable = truesmtpServer = smtp.example.qq.com <-- 腾讯企业邮箱smtpServerPort = 465smtpEncryption = sslsmtpUser = xxxx@xxx.comsmtpPass = ********sslVerify = falsefrom = Code Review < xxxx@xxxx.com >[container]user = user2javaHome = /usr/lib/jvm/java-7-openjdk-amd64/jre[sshd]listenAddress = *:39418 <-- 多个Gerrit运行,记得该值不能重复[httpd]listenUrl = proxy-http://*:8091/gerrit2[cache]directory = cache

6、Apache配置

  • 代理配置:

[root]# vi /etc/apache2/mods-enabled/proxy.conf<IfModule mod_proxy.c><VirtualHost 192.168.1.99:80> # for Gerrit on user1ServerName 192.168.1.99ProxyRequests OffProxyVia OffProxyPreserveHost On<Proxy *:80>Order deny,allowAllow from all</Proxy><Location /gerrit/login/>  AuthType Basic  AuthName "Gerrit Code Review"  Require valid-user  AuthUserFile /home/user1/review_site/etc/gerrit.passwd</Location>AllowEncodedSlashes On # 浏览器访问http://192.168.1.99:80/gerrit/将会                       # 转到http://192.168.1.99:8081/gerrit/ProxyPass /gerrit/ http://192.168.1.99:8081/gerrit/</VirtualHost><VirtualHost *:8090> # for Gerrit on user2ServerName 192.168.1.99ProxyRequests OffProxyVia OffProxyPreserveHost On<Proxy *:8090>Order deny,allowAllow from all</Proxy><Location /gerrit2/login/>  AuthType Basic  AuthName "Gerrit Code Review"  Require valid-user  AuthUserFile /home/user2/review_site/etc/gerrit.passwd</Location>AllowEncodedSlashes OnProxyPass /gerrit2/ http://192.168.1.99:8091/gerrit2/</VirtualHost></IfModule>

  • 端口监听配置:

[root]# vi /etc/apache2/ports.confNameVirtualHost *:80NameVirtualHost *:8090Listen 80 # listen on port 80 for Gerrit on user1Listen 8090 # listen on port 8090 for Gerrit on user2<IfModule ssl_module>Listen 443</IfModule><IfModule mod_gnutls.c>Listen 443</IfModule>

7、运行服务

  • 重启Apache:

[root]# /etc/init.d/apache2 restart

  • 创建账户密码:

# Gerrit on user1touch /home/user1/review_site/etc/gerrit.passwdhtpasswd -m /home/user1/review_site/etc/gerrit.passwd admin提示输入秘密# Gerrit on user2touch /home/user2/review_site/etc/gerrit.passwdhtpasswd -m /home/user2/review_site/etc/gerrit.passwd admin


  • 重启Gerrit在user1:

[user1]$ ./review_site/bin/gerrit.sh restart

  • 重启Gerrit在user2:

[user2]$ ./review_site/bin/gerrit.sh restart

  • 访问:

http://192.168.1.99:80/gerrit/ <-- Gerrit on user1http://192.168.1.99:8090/gerrit2/ <-- Gerrit on user2

8、遇到的问题及解决思路

遇到问题怎么办?无他,看log而!根据log,能解的就地解决,陌生的错误搜索。

0 0
原创粉丝点击