转 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 ...
随机推荐
- ubuntu中phpstorm和sublime快速启动
ubuntu gnome桌面 + dash to dock扩展 下载安装包手动安装phpstorm会遇到无法固定到dash上的情况(运行软件时在dash右击未出现Add to Favoriates) ...
- centos 清除yum缓存
No package nginx available. yum makecache yum install epel-release yum install nginx
- 使用navigator.userAgent来进行浏览器嗅探
/*--------------------------------------------------------------------------------* * 功能描述:使用navigat ...
- MFC文档应用程序CToolBar:设置两个工具条并列停靠到同一条边上 转
转自:http://blog.csdn.net/panshiqu/article/details/9369891# 将多个工具条同时并列停靠在某窗口的某一条边上.对于这种停靠方法,利用上述工具条控制函 ...
- SSAS中CUBE的多对多关系既可以出现在中间事实表上也可以出现在中间维度表上
开发过SSAS中CUBE的朋友,肯定都知道维度用法中的多对多关系, 这篇文章不想详细阐述多对多关系在CUBE中的结构,详情请在网上寻找CUBE多对多关系的介绍资料. 下面是是一个典型的CUBE中多对多 ...
- Node.js 上传图片并保存
Node.js 上传图片并保存 依赖 package.json 文件 { "name": "demo", "version": " ...
- python2.7下使用logging模块记录日志到终端显示乱码问题解决
刚才翻了翻2年以前用python2.7写的一个爬虫程序,主要功能就是把各地市知识产权局/专利局网站的专利相关项目.课题通知,定期爬取和分析,辅助企业进行项目申请. 这里要谈的不是爬虫功能的实现,而是今 ...
- CentOS 7紧急救援模式修改root用户密码的方法
最近无聊在网上搜索linux系统root用户密码破解方法,看来很多朋友的博文,同时也试了一下,但是感觉他们写的还是不是很清晰.简洁,因此自己就心血来潮写了这篇博文,提供一个比较清晰的思路给新手,如果有 ...
- 前端基础-jQuery的事件的用法
阅读目录 常用事件 事件绑定 移除事件 页面载入 一.常用事件 1.鼠标事件之click事件 用交互操作中,最简单直接的操作就是点击操作.jQuery提供了两个方法一个是click方法用于监听用户单击 ...
- Redis笔记 -- make编译安装报错记录2则(一)
1.Redis的获取与安装,目前最新稳定版本为4.0.10 Redis: https://redis.io/download GitHub: https://github.com/antirez/ ...