Gerrit安装指南
Gerrit安装教程参考:
1、 安装git
yum install git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install git-core
git2.10.2独立安装:
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
解压安装的git文件 2.10.2
make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install
//设置环境变量
export PATH=/usr/local/git/bin:$PATH
2、 安装java
下载java1.7,并设置环境变量
Vim /etc/profile
export JAVA_HOME=/usr/local/java/jdk1.7.0_75
export PATH=$JAVA_HOME/bin:$PATH
3、 下载gerrrit最新版本
https://gerrit-releases.storage.googleapis.com/gerrit-2.11.war
各版本下载地址:http://gerrit-releases.storage.googleapis.com/index.html
4、 安装gerrit
服务器:-------
1) 新建专用用户
Adduser gerrit2
su – gerrit2
2) 安装gerrit,默认使用development_become_any_account认证模式(这种由用户自动登录,用来熟悉gerrit,简便安装)
java -jar ~/gerrit-full-2.5.2.war init -d ~/gerrit_site 全部默认
提示安装jdk,手动下载并保存到相应目录
3) 修改/home/gerrit2/gerrit_site/etc/gerrit.config
# /home/gerrit2/gerrit_site/bin/gerrit.sh start //启动
# /home/gerrit2/gerrit_site/bin/gerrit.sh stop // 停止
/home/gerrit2/gerrit_site/bin/gerrit.sh restart //重启
4) 关闭防火墙 service iptables status 查看,service iptables stop关闭
5) http://xxxxxxx:8080/#/q/status:open 访问在页面顶端有一个become链接进行注册登录
其中ssh密码,生成秘钥:ssh-keygen -t rsa -C "管理员" -f ~/.ssh/admin
有了Gerrit账号,也为该账号正确配置了公钥,就可以访问Gerrit提供的SSH登录服务。需要注意的是ssh登陆的用户名必须是gerrit注册的账号,即如图2‑3所示Settings > Profile > Username中显示的Username。
$ssh -p 29418 -i ~/.ssh/admin 10.37.77.181 -l admin
每次ssh连接要输入那么长命令,很烦人,可以配置~/.ssh/config文件来为ssh连接设置别名,如下所示:
Host ha
HostName ip
User admin
Port 29418
IdentityFile ~/.ssh/admin
修改权限:chmod 600 config
查看:ssh ha
进入数据库ssh ha gerrit gsql
[gerrit2@gitppreweb04 .ssh]$ ssh ha gerrit gsql
fatal: admin does not have "Access Database" capability.
异常:admin does not have "Access Database" capability
解决:使用Administrator登陆,在project->ALL-Project Projects/Access中添加Administrators组添加Access Database,然后点击页面最下的“Save Changes”按钮即可
如果提示:需要删除./ssh/known_hosts文件即可
$ ssh ha
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
6) 管理员操作说明
$ ssh ha gerrit --help
gerrit COMMAND [ARG ...] [--] [--help (-h)]
-- : end of options
--help (-h) : display this help text
Available commands of gerrit are:
approve
ban-commit
create-account
create-group
create-project
flush-caches
gsql
ls-groups
ls-projects
plugin
query
receive-pack
rename-group
review
set-account
set-project
set-project-parent
set-reviewers
show-caches
show-connections
show-queue
stream-events
test-submit-rule
version
See 'gerrit COMMAND --help' for more information.
7) 设置/修改gerrit用户邮箱
我这里介绍三种方法来设置/修改gerrit用户的邮箱地址。
◆gerrit自动发送确认邮件(默认方法);
◆通过gerrit set-account修改(强烈推荐);
◆通过SQL语法修改数据库(建议不要用);
ssh ha gerrit set-account --add-email SNCD@cnsuning.com admin
ssh ha gerrit set-account --add-email ccc@cnsuning.com chiwei
可以设置多个邮箱,但同一时间只有一个邮箱
可以创建其他账号:ssh-keygen -t rsa -C "张三" -f ~/.ssh/user1
$ cat ~/.ssh/user1.pub | ssh ha gerrit create-account --email user1@163.com --full-name张三 --ssh-key -<it create-account --email user1@163.com --full-name张三 --ssh-key - user1
8) 更换使用http+ldap+gerrit模式
i. 安装apache ,更新yum:
Yum clean all
ii. 安装gerrit:java -jar ~/gerrit-2.11.war init -d ~/gerrit_site_http
同上修改gerrit.config文件:type为http
[gerrit2@gitppreweb04 etc]$ cat gerrit.config
[gerrit]
basePath = git
canonicalWebUrl = http://xxxx:80/
[database]
type = h2
database = db/ReviewDB
[index]
type = LUCENE
[auth]
type = HTTP
[sendemail]
#smtpServer = localhost
smtpServer = ----
smtpServerPort = 25
smtpEncryption = SSL
smtpUser = ----
smtpPass = ---
from = ----
[container]
user = gerrit2
javaHome = /usr/local/java/jdk1.7.0_75/jre
[sshd]
listenAddress = *:29418
[httpd]
listenUrl = http://*:8081/
[cache]
directory = cache
[plugins]
allowRemoteAdmin = true
iii. 修改httpd.conf文件
<VirtualHost *:80>
ServerName ip
ProxyRequests Off
ProxyVia Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location /login/>
AuthType Basic
AuthName "Gerrit Code Review"
Require valid-user
AuthBasicProvider file
AuthUserFile /gerrit.password
AuthBasicProvider ldap file
AuthLDAPBindDN "CN=xxx,DC=xxxx,DC=com"
AuthLDAPBindPassword xxxx
AuthLDAPURL "ldap://xxxxxxxx:389/ou=persons,dc=suning,dc=com"
# authorization
#Require ldap-group cn=svngroup,ou=appgroups,dc=netease,dc=com
#AuthLDAPGroupAttribute memberUid
#AuthLDAPGroupAttributeIsDN off
</Location>
AllowEncodedSlashes On
ProxyPass / http://xxxxx:8081/ nocanon
</VirtualHost>
AllowEncodedSlashes On
ProxyPass / http://xxxx:8081/ nocanon
注意:上述配置,否则可能gerrit会出现只有根目录可打开,其他文件打开报权限错误,问题是根目录无法进行转码
http 使用文件生成用户名密码
touch /gerrit.password
htpasswd -c /gerrit.password admin