转 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 ...
随机推荐
- PAT——1069. 微博转发抽奖
小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入格式: 输入第一行给出三个正整数M(<= 1000).N ...
- HDU 1058(打表)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1058 Humble Numbers Time Limit: 2000/1000 MS (Java/O ...
- hiveSql常见错误记录
1. In strict mode, if ORDER BY is specified, LIMIT must also be specified. 这个错误提示是因为在hive下写的sql使用了or ...
- dfs板子题-Hdu1283Vegetables
题目描述毕业后,Vegetable在一家建筑公司找到了工作.他所在的城市将要进行整修,要求把所有空地修成公园. 市区是一个N*M的矩形,Vegetable拿到了该市的地图,现在判断共要修几处公园? 注 ...
- 今天在Qt子界面中的Button,转到槽转不过去,报错Qt The class containing 'Ui::MainWindow' could not be found in...
在网上查了原因,因为我在修改button的名字时,没选中button,选中了子界面对话框Dialog,然后修改了名字,又没有改回去,所以button转到槽报错. 参考网站: https://zhida ...
- Linux Centos平台下安装Nginx
以home下安装为例,切换到home目录下 cd /home 安装依赖 nginx相关依赖 yum -y install make gcc gcc-c++ openssl openssl-devel ...
- Docker安装(yum方式 centos7)
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo http://m ...
- 16JavaScript for循环
1.JavaScript 循环 如果希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的. 我们可以这样输出数组的值: 一般写法: document.write(cars[0] ...
- 前端基础-jQuery的最常用的的方法each、data、
阅读目录 each inArray get index data 一.jQuery中each方法的应用 jQuery中有个很重要的核心方法each,大部分jQuery方法在内部都会调用each,其主要 ...
- 使用CURL实现GET和POST方式请求
/** 使用curl方式实现get或post请求@param $url 请求的url地址@param $data 发送的post数据 如果为空则为get方式请求return 请求后获取到的数据 */f ...