gerrit 部署手册
概述
gerrit是谷歌开发用于安卓系统的代码审查的系统,目前已经开源。gerrti使用简单并友好。这里记录了gerrti的部署方法以及其中可能存在的陷阱和问题。
创建专属系统用户
Gerrit code review推荐使用一个独立的用户执行操作,当然这不是必须的。但是这个用户必须具有对配置中设定的git路径持有读写权限!
下载安装包
wget http://gerrit-releases.storage.googleapis.com/gerrit-2.8.war
目前最新版本2.12
安装依赖项
apt-get install default-jre daemon apt-get install apache2-utils
创建数据库
Gerrit需要使用数据库保存系统数据。这里我们使用mysql,在数据库中创建数据库,gerrit默认数据库名为reviewdb,可以使用其他的名称。
安装
java -jar gerrit-2.8.war init -d /etc/gerrit/
gerrit-2.8.war文件为你下载的安装包;
/etc/gerrit/ 是安装目标路径,该路径必须具有读写权限!
步骤如下:
# java -jar gerrit-2.8.war init -d /etc/gerrit/ *** Gerrit Code Review 2.8 *** Create '/etc/gerrit' [Y/n]? Y #如果路径不存在,将自动创建 *** Git Repositories *** Location of Git repositories [git]: *** SQL Database *** Database server type [h2]: mysql Gerrit Code Review is not shipped with MySQL Connector/J ** This library is required for your configuration. ** Download and install it now [Y/n]? y Downloading http://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar ... OK Checksum mysql-connector-java-.jar OK Server hostname [localhost]: Server port [(mysql default)]: Database name [reviewdb]: gerritdb Database username [root]: gerrituser gerrituser's password : confirm password : *** User Authentication *** Authentication method [OPENID/?]: http Get username from custom HTTP header [y/N]? n SSO logout URL : *** Email Delivery *** SMTP server hostname [localhost]: smtp.googlemail.com SMTP server port [(default)]: SMTP encryption [NONE/?]: tls SMTP username [root]: gerrit@thstack.com review@thstack.com's password : confirm password : *** Container Process *** Run as [root]: Java runtime [/usr/lib/jvm/java--openjdk-amd64/jre]: Copy gerrit-2.8.war to /etc/gerrit/bin/gerrit.war [Y/n]? y Copying gerrit-2.8.war to /etc/gerrit/bin/gerrit.war *** SSH Daemon *** Listen on address [*]: Listen on port []: Gerrit Code Review is not shipped with Bouncy Castle Crypto v144 If available, Gerrit can take advantage of features in the library, but will also function without it. Download and install it now [Y/n]? y Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK Checksum bcprov-jdk16-.jar OK Generating SSH host key ... rsa... dsa... done *** HTTP Daemon *** Behind reverse proxy [y/N]? y Proxy uses SSL (https://) [y/N]? n Subdirectory on proxy server [/]: Listen on address [*]: Listen on port []: Canonical URL [http://www.thstack.com/]: http://review.thstack.com/ *** Plugins *** Install plugin reviewnotes version v2. [y/N]? y Install plugin download-commands version v2. [y/N]? y Install plugin replication version v2. [y/N]? y Install plugin commit-message-length-validator version v2. [y/N]? y Initialized /etc/gerrit Executing /etc/gerrit/bin/gerrit.sh start Starting Gerrit Code Review: OK Waiting ... OK Opening http://review.thstack.com/#/admin/projects/ ...FAILED Open Gerrit with a JavaScript capable browser: http://review.thstack.com/#/admin/projects/
配置
多数步骤可以直接回车使用默认参数,仅有几处需要小心:
Location of Git repositories:该路径时仓库路径,如果想包含已有的git仓库路径,那么应该使用这个路径,并且,gerrit运行用户必须具有该路径的读写权限!否则gerrit将无法登陆。
Database server type:使用的数据库类型,默认是gerrit自带的h2。
Authentication method:gerrit使用的用户认证方式,默认是OPENID,这是一种使用第三方的账户信息的认证方式,比如使用yahoo!,google,amazon等。另外一种就是http方式,这个在后面的用户会讲到。
Email Delivery:邮件服务配置,可以使用默认。
Run as:Gerrit运行用户,这里就是用到了之前新建的专属用户。
SSH Daemon:Gerrit自带一个独立的ssh服务,所以这里配置的是这个ssh服务器的监听信息,包括地址,以及端口。地址可以默认,端口也可以默认29418,自己也可以配置,但是不要低于1024.另外外部必须能够访问该端口!
HTTP Daemon:Behind reverse proxy:apache2反向代理,应该设定为y。使用反向代理时,必须确保apache2相应的组件可用!后面会讲到。
HTTP Daemon:Listen on port:http运行端口,这里使用的端口应该与反向代理的端口设定为不同的值,否则浏览器无法访问。
Apache2配置
1 <VirtualHost *:20002> 2 3 ProxyRequests Off 4 ProxyVia Off 5 ProxyPreserveHost On 6 7 8 <Proxy *> 9 Order deny,allow 10 Allow from all 11 </Proxy> 12 13 <Location /login/> 14 AuthType Basic 15 AuthName "Gerrit Code Review" 16 Require valid-user 17 AuthUserFile /home/gerrit/gerrit-site/bin/password 18 </Location> 19 20 ProxyPass / http://127.0.0.1:8081/ 21 </VirtualHost>
Password file
Apache2配置中存在一个AuthUserFile路径,这个是用于执行http认证方式的,因为在安装时【Authentication method】参数设定为http方式。这个文件如果不存在则应该创建之。
这个文件用于保存gerrit用户数据,包括用户名和密码,密码使用了MD5加密方式保存。不要手动修改该文件!
第一个用户将会成为gerrit系统管理员账户,创建用户时使用如下命令:
htpasswd -b your/passwd/file username password
所有的gerrit用户应该在这里添加!否则其他用户无法登陆gerrit.用户第一次登陆gerrit时,gerrit自动保存用户信息到数据库中!请勿直接修改数据库!
请运行htpasswd --help查看详情。
启动
安装完后需要自己手动启动gerrit服务,启动前请确保相应的路径的权限以及数据库。
运行安装目录下的bin/gerrit.sh脚本。
./gerrit.sh stop:停止服务 ./gerrit.sh start:启动服务 ./gerrit.sh restart:重启服务 ./gerrit.sh run:调试运行,可以实时查看运行日志,可以使用这个方法调试问题。
详细信息运行./gerrit.sh help查看。
启动后如果存在如下提示文本,说明启动成功:
Starting Gerrit Code Review: OK
如果不是的话,那么说明部署失败!
FQA
FQA1
查看apache2运行日志:
AH01144: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.
说明是apache2反向代理组件未启用!执行以下命令:
a2enmod proxy a2enmod proxy_http sudo service apache2 restart
FQA2
Gerrit未启动!
FQA3
[-- ::,] ERROR com.google.gerrit.httpd.restapi.RestApiServlet : Error in GET /accounts/self/preferences java.lang.IllegalStateException: Missing project All-Projects
设置的git路径的权限有问题,运行gerrit的用户必须有该目录的读写权限!
FQA4
: Connection refused
该端口未开放或者gerrit服务未启动!
FQA5
Sign Out Failure
也许你会发现用gerrit+HTTP认证,通过web登陆后,点击右上角的Sign Out无法登出。要么是依然保持登陆的状态,要么就是直接出错。
不要以为怎么了,其实这是正常现象,以下这段话是从网上看到的:
You are using HTTP Basic authentication. There is no way to tell abrowser to quit sending basic authentication credentials, to logout with basicauthentication is to close the Webbrowser.
gerrit 部署手册的更多相关文章
- MariaDB Galera Cluster部署手册
MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1> yum install opens ...
- LVS+MYCAT+读写分离+MYSQL主备同步部署手册
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- 【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- OpenStack Kilo版加CEPH部署手册
OpenStack Kilo版加CEPH部署手册 作者: yz联系方式: QQ: 949587200日期: 2015-7-13版本: Kilo 转载地址: http://mp.weixin.qq.co ...
- [转帖]Oracle 11G RAC For Windows 2008 R2部署手册
Oracle 11G RAC For Windows 2008 R2部署手册(亲测,成功实施多次) https://www.cnblogs.com/yhfssp/p/7821593.html 总体规划 ...
- Javamelody部署手册
Javamelody部署手册 1. Javamelody下载 下载地址:http://code.google.com/p/javamelody/downloads/list(注:需要FQ才能打开下载 ...
- Symantec Backup Exec部署手册
转载 http://xiaxiaoguo.blog.51cto.com/858884/402810 Symantec Backup Exec部署手册 目录 1.Backup Exec 12.5安装. ...
- Gerrit部署成功后project下不显示clone地址
gerrit部署成功后使用admin账号登录,在project All-projects下不显示clone地址,新建仓库也不显示. 原因是:默认安装没有安装插件download-commands 安装 ...
- Kubernetes 1.13 的完整部署手册
前言: 非常详细的K8s的完整部署手册,由于Kubernetes版本和操作系统的版本关系非常敏感,部署前请查阅版本关系对应表 地址:https://github.com/kubernetes/kube ...
随机推荐
- JS中offsetTop、clientTop、scrollTop、offsetTop各属性介绍
这里是javascript中制作滚动代码的常用属性 页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见 ...
- 移动端自动化环境搭建-Appium Client的安装和AppiumLibrary库的安装
A.安装依赖 appium client是配合原生的webdriver来使用的(特别是用java而不用maven的同学),因此二者必须配合使用缺一不可. B.安装过程 1.在线安装 pip insta ...
- HTTP服务&Ajax编程知识点导图
- Convert HTML to Text(转载)
原文地址:http://www.blackbeltcoder.com/Articles/strings/convert-html-to-text Download Source Code Intro ...
- weedfs getsockopt: connection timed out
启动master weed master -ip 10.191.197.133 -mdir /namenode -ip.bind 10.191.197.133 I0809 16:53:51 7721 ...
- CubieTruck上安装mjpg_streamer
最近手头项目需要用到一个上位机,需要在上位机上实现远程访问及视频监控.其中视频监控采用了网上资料较多的mjpg_streamer进行视频处理.在使用中遇到许多坑也一并记录下来. 首先安装依赖环境和检测 ...
- 分析一个类似于jquery的小框架 (2)
核心构造函数 (function ( window, undefined ) { // 定义Itcast构造函数 function Itcast ( selector ) { return new I ...
- JavaEE知识点总结
JavaEE知识点总结 什么是分层开发? 一种化大为小,分而治之的软件开发方法. 分层的特点: 1.每一层都有自己的责任. 2.上一层不用关心下一层的实现细节,上一层通过下一层 提供的对外接口来使用其 ...
- XidianOJ 1041: Franky的游戏O
题目描述 Franky是super的人造人,来到了n*m的棋盘世界玩冒险游戏. n×m的棋盘由n行每行m个方格组成,左上角的方格坐标是(0,0),右下角的方格坐标是(n-1,m-1). 每次游戏时,他 ...
- 迷你MVVM框架 avalonjs1.5 入门教程
avalon经过几年以后,已成为国内一个举足轻重的框架.它提供了多种不同的版本,满足不同人群的需要.比如avalon.js支持IE6等老旧浏览器,让许多靠政府项目或对兼容性要求够高的公司也能享受MVV ...