转 gerrit
开发环境 https://blog.csdn.net/u013207966/article/details/79112740
先记录下我的开发环境以及要正确安装gerrit需要用到的工具:
- Redhat(CentOS) 6.5
- Java 1.7.0 (至少1.6以上)
- git 1.7,1
- Nginx 1.10.2
- Apache 2.2.15
几点说明:
关于操作系统
Redhat和CentOS用的是同样的内核,我这里是6.5版本的内核;其他linux系统上安装过程照猫画虎应该也差不多,只不过可能比如Java或者Nginx等工具的安装方式有所差别。
为了方便后面文章的讲解,我们这里假设gerrit服务器的ip地址是
192.168.1.100
关于Java环境
在终端中输入
java -version
务必确保你的java环境正确安装了;因为整个gerrit的安装是依赖于Java的,另外最好确保Java版本在 1.6 以上吧,虽然我没有验证过低版本的Java是不是没问题,但是高一点的版本保险一点。Web服务器
网上很多教程有讲到gerrit+apache安装过程的,我这里是用nginx。先来说说为什么一定要用apache或者nginx,是的就是为了
反向代理
。Gerrit有两种工作方式,我们要采用
http
的工作方式,也就是代码审核人员,可以直接通过Web页面对提交的代码进行评审以及后续的操作。然后Gerrit要求不能直接请求其端口,必须要使用反向代理才能正确登录。而我们知道Nginx的成功正在于其高效、轻量级以及 反向代理 ,虽然Apache也有反向代理的功能,但是如果你在安装Apache时没有开启,后续的开启过程要相对复杂一点,而Nginx就简单的多了。
不过即便我们使用Nginx做为web页面引擎,仍然需要安装Apache,因为我们需要用到apache的一个工具来创建验证密码文件。这个后面我们会看到具体用法。
数据库
我们使用gerrit自带的H2数据库。网上也有其他数据库的安装教程,我这里想说的是,H2就够用,而且,我们不推荐直接对数据库进行操作,所有的操作,都可以通过命令行的方式完成,所以,尽量简单我们就使用自带的默认的数据库好了。
所以,请务必确保以上几个工具正确安装。
在RedHat或者CentOS上可以通过 yum
工具来安装,如果yum的源打不开,可以去网上搜一下替换yum源的方法。
安装gerrit
下载gerrit安装包
gerrit的下载地址:
https://www.gerritcodereview.com/releases/README.md
我使用的gerrit版本是 2.13.4 。 下载完成之后会发现是一个 war
的包,所以我们的Java环境一定要安装正确。
新建gerrit专用用户
新建一个用户用来专门管理gerrit相关的内容。
在root用户(或者使用 sudo
命令)下面输入下面的命令:
$ adduser gerrit
$ su gerrit
建好用户以后,我们可以把之前下载好的gerrit安装包(gerrit-2.13.4.war)拷贝到 /home/gerrit/
目录下,一会方便gerrit用户来安装。
安装gerrit
在gerrit用户的目录(/home/gerrit/)下面,执行下面的命令:
$ java -jar gerrit-2.13.4.war init -d ~/gerrit_site
这个命令的意思是执行安装gerrit,会在当前目录下新建一个文件夹 gerrit_site
用来作为gerrit的根目录,在这个目录中,会安装git仓库,以及gerrit的web页面,还有gerrit的bin,etc等文件夹。
然后就开始安装过程了,安装的过程会询问很多问题,有一些判断性的问题会用 [y/N]
这样的形式,大写的字母表示默认,我们直接敲回车就表示采用默认的安装选项。
注意:
- 我们安装的时候,可以只在
Authentication method
时输入http
,其他全部回车用默认值,因为其他配置我们待会可以通过etc/gerrit.config
文件进行修改 - 期间可能会下载两个文件,这两个文件虽然都很小(不到3M),但是可能是因为GFW的原因,下载速度很慢。你可以到
/lib
文件夹下面查看他们是不是已经下载完了,或者你手动把那两个文件下载完之后,scp到/lib
下面。
如果你发现已经下完了,但是安装过程卡主了,没有关系,直接ctrl+c
然后重新安装就可以了。
下面我就把整个安装过程全部贴出来,加上一些注释,好让大家看清楚都安装了什么:
*** Gerrit Code Review 2.13.4
*** ## git 代码仓库的位置, 默认会在之前敲的init -d 目录下新建一个git文件夹
## 我们回车表示默认地址
*** Git Repositories
*** Location of Git repositories [git]: ## 数据库类型,我们直接回车表示默认的h2
*** SQL Database
*** Database server type [h2]: ## 用户认证方式,注意!!!!!这里一定要手动输入 http, 其他的就直接回车
*** User Authentication
*** Authentication method [OPENID/?]: http
Get username from custom HTTP header [y/N]?
SSO logout URL : ## 发送email的配置,这里我们全部回车使用默认,之后通过配置文件进行修改
*** Email Delivery
*** SMTP server hostname [localhost]:
SMTP server port [(default)]:
SMTP encryption [NONE/?]:
SMTP username : ## 剩下的全部回车就好了,全部安装成默认的配置
*** Container Process
*** Run as [gerrit]:
Java runtime [/usr/lib/jvm/java-7-openjdk-amd64/jre]:
Copy gerrit-2.13.4.war to /home/gerrit/review/bin/gerrit.war [Y/n]?
Copying gerrit-2.13.4.war to /home/gerrit/review/bin/gerrit.war *** SSH Daemon
*** Listen on address [*]:
Listen on port [29418]: ## 这里下载可能会失败,按照我之前说过的方法重新试一遍应该就ok了
Gerrit Code Review is not shipped with Bouncy Castle Crypto SSL v151
If available, Gerrit can take advantage of features
in the library, but will also function without it.
Download and install it now [Y/n]?
Downloading http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar ... ## http的反向代理,我们这里先不要设置,一路回车,尽快完成安装
*** HTTP Daemon
***
Behind reverse proxy [y/N]?
Proxy uses SSL (https://) [y/N]?
Subdirectory on proxy server [/]:
Listen on address [*]:
Listen on port [8080]: // 插件,默认都是不安装的
*** Plugins
*** Installing plugins.
Install plugin download-commands version v2.11 [y/N]?
Install plugin reviewnotes version v2.11 [y/N]?
Install plugin singleusergroup version v2.11 [y/N]?
Install plugin replication version v2.11 [y/N]?
Install plugin commit-message-length-validator version v2.11 [y/N]?
Initializing plugins.
No plugins found with init steps. Initialized /home/gerrit_site
...
其实安装过程真的很简单,只是在 Authentication method
方式时输入 http
其他的一路回车下去就好了。
启动gerrit
安装完成之后,gerrit会自动启动,而且会开始监听两个端口:
- 29418: 默认的ssh端口;
- 8080: gerrit默认的web页面端口。
我们可以通过下面命令查看:
$ netstat -ltpn | grep -i gerrit tcp 0 0 :::29418 :::* LISTEN 49513/GerritCodeRev
tcp 0 0 :::8080 :::* LISTEN 49513/GerritCodeRev
Nginx
接下来就该Nginx上场了。
在没有配置nginx反向之前,我们直接访问 192.168.1.100:8080/login
(我们之前假设gerrit服务器的ip地址是192.168.1.100),会得到一个错误页面,这个页面对于初次使用http方式的gerrit用户可能会让你感到非常。。。绝望,笔者至少看到这个页面不下10多次。。。
步骤一:创建专用账户和工作目录
adduser gerrit;passwd gerrit;创建gerrit专用工作目录:mkdir /home/gerrit
步骤二:配置Java环境
1) 从官网下载JDK:http://download.oracle.com/otn-pub/java/jdk-nb/8u161-8.2/jdk-8u161-nb-8_2-linux-x64.sh
2) 添加执行权限chmod a+x jdk-8u161-nb-8_2-linux-x64.sh,然后运行该脚本安装
3) 设置环境变量,编辑/etc/profile或~/.bashrc文件在文件末尾添加如下配置
export JAVA_HOME=/usr/local/jdk1.8.0_161
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CLASSPATH
4) 测试Java 环境,在终端输入:java -version 查看是否正常显示版本信息,若显示则安装成功
步骤三: 下载安装gerrit
1) 从官网下载gerrit: http://code.google.com/p/gerrit/ 存放于/home/gerrit目录
2) 安装gerrit: java -jar gerrit-full-2.5.2.war init -d review_site ,一路回车,默认安装
3) 修改gerrit 配置文件,其说明如下:
[gerrit]
basePath = git //指定被gerrit管理的所有git库存放位置,即review_site_project/git/
canonicalWebUrl = http://192.168.0.20:8081/ //指定web访问gerrit的网址//填自己的ip和端口号
[database]
type = h2 //指定gerrit所默认数据库类型,可以选用mysql,安装并创建gerrit账户
database = db/ReviewDB
[auth]
type = HTTP //指定浏览器登录gerrit时的认证方式
[sendemail]
enable = true
smtpServer = smtp.126.com
smtpServerPort = 25
smtpUser = xxx@126.com
smtpPass = xxx
sslVerify = false
from = CodeReview<xxx@126.com>
[container]
user = gerritserver //指定gerrit所在机器的用户身份与上文创建的用户对应一致
javaHome = /usr/lib/jvm/jdk7/jre //系统本身自带
[sshd]
listenAddress = *:29418 //指定sshd服务监听的端口号
[httpd]
listenUrl = http://*:8081/project //指定http代理地址
[cache]
directory = cache //缓存位置
4) 启动gerrit服务:review_site/bin/gerrit.sh start | stop | restart
如果提示发生如下错误:** ERROR: GERRIT_SITE not set
则可按如下方法修改:vim gerrit.sh
在GERRIT_SITE变量被赋值之后加入下面这行,改变该变量的值。
GERRIT_SITE=/home/gerrit/review_site
5) 开机启动:ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.sh
步骤四:配置反向代理服务(Nginx)
1) 安装Nginx反向代理服务器
安装gcc: yum install gcc-c++
安装PCRE: yum install -y pcre pcre-devel
安装zlib: yum install -y zlib zlib-devel
安装openssl: yum install -y openssl openssl-devel
下载nginx:https://nginx.org/en/download.html
安装Nginx:tar -xzvf nginx-1.13.7.tar.gz; cd nginx-1.13.7;./configure; make; make install
开机启动:vi /etc/rc.local文件末尾增加一行 /usr/local/nginx/sbin/nginx
2) 配置nginx: vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
auth_basic "Welcome to Gerrit Code Review !";
auth_basic_user_file /home/gerrit/gerrit.passwd;
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
启动Nginx服务:/usr/local/nginx/sbin/nginx
3)设置第一个gerrit用户的帐号和密码
touch ./review_site/etc/passwd
htpasswd -b ./review_site/etc/passwd gerrit gerrit
步骤五:测试,访问: http://192.168.0.20 ,用gerrit用户登录
转 gerrit的更多相关文章
- CentOS安装gitlab,gerrit,jenkins并配置ci流程
CentOS安装gitlab,gerrit,jenkins并配置ci流程 By Wenbin juandx@163.com 2016/4/9 这是我参考了网上很多的文档,配置了这三个软件在一个机器上, ...
- Centos 安装配置gerrit
关闭selinux,不然nginx的反向代理会报错connect() to 127.0.0.1:8080 failed (13: Permission denied) while connecting ...
- Gerrit增加SSL证书
在http的基础上增加SSL 配置gerrit.config文件 [gerrit] basePath = git canonicalWebUrl = https://172.16.99.212/ .. ...
- 解决:Cannot get http://gerrit.googlesource.com/git-repo/clone.bundle
同步cm12.1初始化出现的问题: fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle fatal: err ...
- Gerrit管理帐号
文档 Gerrit服务器启动后,网站上有一个Documentation链接.点击后会看到四个选项: index,searching,uploading和access control 文档内容很多,不必 ...
- Gerrit与Gitlab同步配置replication&其他配置
一.Gerrit与Gitlab同步配置 当配置好gerrit环境后,还需要与现有gitlab库进行同步配置,否则会影响现有开发与打包流程. 1.安装gerrit replication插件 unzip ...
- 如何搭建开源code review gerrit服务器
搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.ora ...
- gerrit session expired 怎么解决,搜索未果
gerrit session expired,怎么解决,搜索未果
- 【Gerrit】Gerrit cmd query (gerrit命令行查询change信息)
本文仅展现个人使用情况和理解,英文原址:https://review.openstack.org/Documentation/cmd-query.html 基本使用格式: ssh -p <por ...
- gerrit 部署手册
概述 gerrit是谷歌开发用于安卓系统的代码审查的系统,目前已经开源.gerrti使用简单并友好.这里记录了gerrti的部署方法以及其中可能存在的陷阱和问题. 创建专属系统用户 Gerrit co ...
随机推荐
- disconf实践(一)Ubuntu16.04部署disconf
在企业中,随着公司业务的扩张,用户量的增大,单一节点应用无法支撑正常的业务逻辑,比较常见的现象是访问速度变慢,甚至超时,严重时可能会造成系统宕机.为了尽量减少宕机的风险,单一节点系统需要进行水平扩展, ...
- PAT——1033. 旧键盘打字
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现.现在给出应该输入的一段文字.以及坏掉的那些键,打出的结果文字会是怎样? 输入格式: 输入在2行中分别给出坏掉的那些键.以及应该输入的文 ...
- 【luogu P1955 [NOI2015]程序自动分析】 题解
题目链接:https://www.luogu.org/problemnew/show/P1955 并查集操作,1e9要离散化,数组要开大一些,操作前先执行合并操作 样例好毒啊(全是排好序的) #inc ...
- 一些有用的社区论坛,wiki网站(持续更新)
1. IBM开发者(IBM developerwork): 这是一个比较全面的网站,上面有关于linux 管理.linux内核设计.存储等各个方面的知识,内容广泛,参考价值很高 http://www. ...
- 多线程系列之 Java多线程的个人理解(一)
前言:多线程常常是程序员面试时会被问到的问题之一,也会被面试官用来衡量应聘者的编程思维和能力的重要参考指标:无论是在工作中还是在应对面试时,多线程都是一个绕不过去的话题.本文重点围绕多线程,借助Jav ...
- 轻量ORM-SqlRepoEx (十四)最佳实践之Dapper(1)
简介:SqlRepoEx是 .Net平台下兼容.NET Standard 2.0人一个轻型的ORM.解决了Lambda转Sql语句这一难题,SqlRepoEx使用的是Lambda表达式,所以,对c#程 ...
- Oracle 存储结构三
Oracle数据库服务器自动管理空间的方法 段空间的分配 空间以区间的形式分配给段,区间是一组连续的Oracle块.每个数据文件都有一个位图,来描述文件中块的状态,块可能是空闲的,也可能是区间中已分配 ...
- Eclipse部署Web项目,常用操作和常见错误的解决方案
部署Web项目到tomcat 在eclipse中找到Servers项,打开服务器(F3)(建议直接删除服务器,重新建立再设置比较好)1.Servers Locations 中选择Use Tomcat ...
- 15JavaScript switch语句
1.JavaScript switch 语句 使用 switch 语句来选择要执行的多个代码块之一. 语法: switch(n) { case 1: 执行代码块 1 break; case 2: 执行 ...
- 偏前端--之小白学习本地存储与cookie
百度了很多都是讲的理论,什么小于4kb啊之类的,小白看了一脸懵逼复制到html中为什么没效果!!哈哈.我来写一个方便小白学习. 贴图带文字描述,让小白也运行起来,然后自己再去理解... 1. cook ...