一. 准备工作
系统环境:Ubuntu12.04
Gerrit版本:2.2.1 http://gerrit-releases.storage.googleapis.com/index.html
Git安装: apt-get install git
二. 配置过程
- zhouyanjiang@zhouyanjiang:~/Gerrit$ java -jar gerrit-2.2.1.war init -d review_sites
安装过程中会提示输入各种信息,包括数据库信息等,大部分都可以使用默认配置。除了一个地方注意改成Y,Behind reverse proxy [y/N]? Y。
- *** Gerrit Code Review 2.2.1
- ***
- Create '/home/zhouyanjiang/Gerrit/review_sites' [Y/n]?
- *** Git Repositories
- ***
- Location of Git repositories [git]:
- *** SQL Database
- ***
- Database server type [H2/?]:
- *** User Authentication
- ***
- Authentication method [OPENID/?]:
- *** Email Delivery
- ***
- SMTP server hostname [localhost]:
- SMTP server port [(default)]:
- SMTP encryption [NONE/?]:
- SMTP username :
- *** Container Process
- ***
- Run as [zhouyanjiang]:
- Java runtime [/usr/lib/jvm/java-6-openjdk-amd64/jre]:
- Copy gerrit.war to /home/zhouyanjiang/Gerrit/review_sites/bin/gerrit.war [Y/n]?
- Copying gerrit.war to /home/zhouyanjiang/Gerrit/review_sites/bin/gerrit.war
- *** SSH Daemon
- ***
- Listen on address [*]:
- Listen on port [29418]:
- 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]?
- Downloading http://www.bouncycastle.org/download/bcprov-jdk16-144.jar ... OK
- Checksum bcprov-jdk16-144.jar OK
- Generating SSH host key ... rsa... dsa... done
- *** HTTP Daemon
- ***
- Behind reverse proxy [y/N]? Y
- Proxy uses SSL (https://) [y/N]?
- Subdirectory on proxy server [/]:
- Listen on address [*]:
- Listen on port [8081]:
- Canonical URL [http://zhouyanjiang-System-Product-Name/]:
- Initialized /home/zhouyanjiang/Gerrit/review_sites
- Executing /home/zhouyanjiang/Gerrit/review_sites/bin/gerrit.sh start
- Starting Gerrit Code Review: OK
- Waiting for server to start ... OK
- Opening browser ...
三. 报错处理
1. 登陆网页会发现一些跳转不正常
修改 review_sites/etc/gerrit.config文件 canonicalWebUrl = http://192.168.5.102:8081/
2. 启动gerrit服务出现报错
- zhouyanjiang@zhouyanjiang:~/Gerrit/review_sites/bin$ ./gerrit.sh start
- ** ERROR: GERRIT_SITE not set
报错为GERRIT_SITE未设置,只需要在gerrit.sh中设置GERRIT_SITE=/home/zhouyanjiang/Gerrit/review_sites即可
3. 重启gerrit服务报错
- zhouyanjiang@zhouyanjiang:~/Gerrit/review_sites/bin$ ./gerrit.sh start
- Starting Gerrit Code Review: process already running.
重新启动服务需要先stop,再start
四. 邮箱设置
经过上述的配置和调整,gerrit页面http://192.168.5.102:8081 已经可以访问,此时第一个注册的用户为系统管理员。在此之前,还需要配置一下系统邮箱。
系统邮箱的作用是给注册用户发送注册验证,给用户提交/merge代码发送邮件提示。在gerrit.config中的[sendemail]处进行配置,下面是的一个例子。
- [sendemail]
- enable = true
- smtpServer = smtp.gmail.com
- smtpServerPort = 465
- smtpEncryption = ssl
- smtpUser = nuaayan@gmail.com
- smtpPass = ******
- sslVerify = false
- from = CodeReview<nuaayan@gmail.com>
五. GERRIT公钥配置
1.注册用户
访问http://192.168.5.102:8081/, 点击右上角的"Register",使用google或yahoo邮箱注册,如果没有,需要提前申请。点击右上角的"Settings", 填写“Profile“里Username,"Contact Information"中Full Name,点击"Save Changes";
2.配置公钥
- ~$ cd ~
- ~$ mkdir .ssh
- ~$ cd .ssh
- ~/.ssh$ ssh-keygen -t rsa -C nuaayan@gmail.com (注:一路按回车即可)
在.ssh文件夹里添加新文件config, 内容如下:
- Host nuaayan
- Hostname 192.168.5.102
- Port 29418
- User nuaayan
- PubkeyAuthentication yes
- IdentitiesOnly yes
- PasswordAuthentication no
- IdentityFile ~/.ssh/id_rsa
进入gerrit - Settings - SSH Keys,填入Username(和config的User一致); 并将~/.ssh/id_rsa.pub的内容复制到"Add SSH Public Key"
- ~$ ssh nuaayan (192.168.5.102的别名,在config中配置过)
出现下面两行,就说明连接成功了。
- gerrit: no shell available
- Connection to 192.168.5.102 closed.
如果遇到错误:
- Agent admitted failure to sign using the key.
- Permission denied (publickey,password).
请在 .bashrc 中设置环境变量并重启bashrc:
- export SSH_AUTH_SOCK=0
六. 新建/检出 GIT仓库
1. 新建git仓库:
- ssh nuaayan gerrit create-project -n test/project1
2. 察看本人仓库权限 :
- ssh nuaayan gerrit ls-projects
3. 检出仓库test/project1
- git clone nuaayan:test/project1