Gerrit安装指南

 

 Gerrit安装教程参考:

https://www.baidu.com/link?url=mZcEH1Bofo7FvImX1xxcas46KOLE0oUl5K_YzfeIVMWZYR8a_BwB7bMr9jeFnGoPfbLH9QZTOe9MwenVeQ7rkq&wd=&eqid=9f81e6f30011dcef00000005589682e5

 

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