一台服务器上运行多个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
- 一台服务器上运行多个Gerrit服务
- 在一台机子上运行多个MySQL服务器
- 一台电脑上运行多个Tomcat服务器
- 一台服务器运行多个tomcat
- 一台服务器上同时运行两个Tomcat服务
- 一台机器上运行多台服务器
- 一台服务器安装运行多个Tomcat及注册服务
- 一台服务器上面运行多个tomcat服务的设置方法
- 一台服务器安装运行多个Tomcat及注册服务
- 利用mysqld_multi在一台服务器上启动多个mysql服务
- Mysqld_multi在一台服务器上运行多个mysql实例及操作
- Mysqld_multi在一台服务器上运行多个mysql实例及操作
- 在同一台机器上运行多个 MySQL 服务
- 在同一台机器上运行多个 MySQL 服务
- 在同一台机器上运行多个服务器
- 在同一台机器上运行多个MySQL服务器
- 在同一台机器上运行多个MySQL服务器
- 在同一台机器上运行多个MySQL服务器
- CS231n 课程笔记翻译:最优化笔记
- 二分法
- Object.assign()之深浅烤白
- 机器学习
- 20个非常有用的Java程序片段
- 一台服务器上运行多个Gerrit服务
- 使用Intellij IDE创建Maven项目
- Kaggle入门——Titanic案例
- HTML-URL
- 回文字符串
- Java多线程(4)——线程数据传递
- SQL位运算
- OC 对象作为方法的参数和返回值传递
- requestAnimationFrame方法