Gerrit+Nginx

原文:http://www.cnblogs.com/kevingrace/p/5624122.html#commentform


1)创建gerrit数据库,并自定义编码为utf8
mysql>create database gerritdb CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>grant all on gerritdb.* to 'gerrituser'@'localhost' identified by 'gerritpass';


2)添加账号
[root@115 ~]#useradd gerrit
[root@115 ~]#su - gerrit
[gerrit@115 ~]$
在root账号下操作
[root@115 ~]# cp /root/gerrit-2.11.3.war /home/gerrit
下面一步很重要,就是说提前把下面的两个软件放到相应的位置,以防在gerrit安装过程中再去执行下载操作(因为安装过程中再去下载,由于网速问题会failed!)
[root@115 ~]#mkdir -p /home/gerrit/gerrit_site/lib
[root@115 ~]#cp /root/mysql-connector-java-5.1.21.jar /home/gerrit/gerrit_site/lib/ 
[root@115 ~]#cp /root/bcpkix-jdk15on-1.52.jar /home/gerrit/gerrit_site/lib/
[root@115 ~]#chown -R gerrit.gerrit /home/gerrit

接着在gerrit账号下进行安装
除了选用mysql数据库,Verified,http认证代理,其他的都是默认! 

[gerrit@115 ~]$ java -jar gerrit-2.11.3.war init -d ~/gerrit_site

Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore

*** Gerrit Code Review 2.11.3
*** 


*** Git Repositories
*** 

Location of Git repositories [git]: 

*** SQL Database
*** 

Database server type [h2]: mysql

Gerrit Code Review is not shipped with MySQL Connector/J 5.1.21
** This library is required for your configuration. **
Download and install it now [Y/n]? 
Renaming mysql-connector-java-5.1.10.jar to .mysql-connector-java-5.1.10.jar.backupDownloading http://repo2.maven.org/maven2/mysql/mysql-connector-java/5.1.21/mysql-connector-java-5.1.21.jar ... OK
Checksum mysql-connector-java-5.1.21.jar OK
Server hostname [localhost]: 
Server port [(mysql default)]: 
Database name [reviewdb]: gerritdb
Database username [gerrit]: gerrituser
gerrituser's password : 
confirm password : 

*** Index
*** 

Type [LUCENE/?]: 

The index must be rebuilt before starting Gerrit:
java -jar gerrit.war reindex -d site_path

*** User Authentication
*** 

Authentication method [OPENID/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL : 

*** Review Labels
*** 

Install Verified label [y/N]? 

*** 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-1.8.0-openjdk-1.8.0.91-1.b14.el6.x86_64/jre]: 
Copy gerrit-2.11.3.war to /home/gerrit/gerrit_site/bin/gerrit.war [Y/n]? 
Copying gerrit-2.11.3.war to /home/gerrit/gerrit_site/bin/gerrit.war

*** SSH Daemon
*** 

Listen on address [*]: 
Listen on port [29418]: 

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]? 
Renaming bcpkix-jdk15on-1.52.jar to .bcpkix-jdk15on-1.52.jar.backupDownloading http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar ... !! FAIL !!


error: http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar: 302 Found
Please download:

http://www.bouncycastle.org/download/bcpkix-jdk15on-151.jar

and save as:

/home/gerrit/gerrit_site/lib/bcpkix-jdk15on-151.jar

Press enter to continue 
Continue without this library [Y/n]? 
Generating SSH host key ... rsa(simple)... done

*** HTTP Daemon
*** 

Behind reverse proxy [y/N]? Y 反向代理
Use SSL (https://) [y/N]? 
Listen on address [*]: 
Listen on port [8080]: 8081 如果使用反向代理,这里要使用一个代理服务器监听的不同端口,我使用的8081
Canonical URL [http://Zabbix-server:8080/]: 如果设置了反向代理,则要填写代理服务器的端口,我写的8080

*** Plugins
*** 

Installing plugins.
Install plugin download-commands version v2.11.3 [y/N]? 
Install plugin reviewnotes version v2.11.3 [y/N]? 
Install plugin singleusergroup version v2.11.3 [y/N]? 
Install plugin replication version v2.11.3 [y/N]? 
Install plugin commit-message-length-validator version v2.11.3 [y/N]? 
Initializing plugins.
No plugins found with init steps.    

Initialized /home/gerrit/gerrit_site

3) 第一次启动缓存

java -jar gerrit-2.11.3.war reindex -d /home/gerrit/gerrit_site

[gerrit@115 ~]$ /home/gerrit/gerrit_site/bin/gerrit.sh start
Starting Gerrit Code Review: OK

4)配置文件

/home/gerrit/gerrit_site/etc/gerrit.config

[gerrit]
        basePath = git
        canonicalWebUrl = http://47.93.118.157:8080
[database]
        type = mysql
        hostname = localhost
        database = reviewdb
        username = gerrit
[index]
        type = LUCENE
[auth]
        type = HTTP
[receive]
        enableSignedPush = false
[sendemail]
    smtpServer = smtp.exmail.qq.com
    smtpServerPort = 465
    smtpEncryption = ssl
    smtpUser = xxx
    smtpPass = xxx
    sslVerify = false
    from= xxx@xxx
[container]
        user = gerrit
        javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.71-2.b15.el7_2.x86_64/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = proxy-http://*:8081/
[cache]
        directory = cache

nginx配置文件:

 1 server {
  2     listen 8080;
  3     server_name 123.45.6.7;
  4     location / {
  5         auth_basic              "Gerrit Code Review";
  6         auth_basic_user_file    /home/gerrit/gerrit_site/etc/passwords;                                                                                                                                        
  7         proxy_set_header        X-Forwarded-For $remote_addr;
  8         proxy_set_header        Host $host;
  9         proxy_pass http://127.0.0.1:8081;
 10     }
 11 }

5)  修改权限

setfacl -m g:nginx:rx /home/gerrit

6)添加第一个用户

htpasswd -c /home/gerrit/gerrit_site/etc/passwords  gerrit

两次输入密码

注意:第一个添加用户为管理员。

7)访问你的网址+端口,使用gerrit用户登录,即可。


8) 登陆gerrit界面进行邮箱注册

通过配置的邮箱发送到你设置的邮箱一个激活链接,点击后进入账号的设置环节。


9)git中文乱码

为妥善解决中文编码的问题,对所有git repository做如下约定:
  a、所有文本文件都必须存储成utf8编码
  b、对git做如下设置:
    git config --global core.quotepath false
    git config --global i18n.logoutputencoding utf8
    git config --global i18n.commitencoding utf8
安装gerrit的时候对于数据库(选择myqsl方式的话)的编码设定为utf8


10)gerrit对接gitweb

上面搭建好的gerrit,登陆进去在Projects项目里的右边没有gitweb的超链接

1.需要先搭建gitweb,然后进行相关配置

[root@115 ~]# yum install -y gitweb     【或者直接yum install -y git*】

gitweb安装后的目录路径是/var/www/git

2. 通过git config配置一下
[root@115 ~]#git config --file /home/gerrit/gerrit_site/etc/gerrit.config gitweb.cgi /var/www/git/gitweb.cgi 
[root@115 ~]#git config --file /home/gerrit/gerrit_site/etc/gerrit.config --unset gitweb.url
3.重启gerrit,然后登陆gerrit后,gitweb超链接 效果就有了

********************** ********************** ******************** 

gitweb还是蛮实用的。

可以通过打开gerrit上某个工程的gitweb,查看到这个工程代码近期的所有动向!

【默认情况下:只有gerrit的管理员权限才能查看gitweb】

【普通用户要想访问gitweb,需要后续添加访问权限,具体参照http://www.cnblogs.com/kevingrace/p/5651447.html文章底部的介绍】

如下:


11)SSH公钥配置

在gerrit本机上使用下面的命令生成管理员账号(这里将gerrit作为管理员)的公私钥
[gerrit@115]$ ssh-keygen -t rsa -C [email protected]
[gerrit@115]$ cd ~/.ssh/                            【~是切换到当前用户家目录下】
[gerrit@115]$ ls  
id_rsa  id_rsa.pub

[gerrit@115]$ cat id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqvdgToL4veIqVe4D2iOwpzggdnGU8eGfRpwZH5hsCPdrIfjMgAMYz4TCKzmD9yv8VXrG/hCOX1zgL63ZLJ1NUTTG4zJ48UefRA0i3YqDez0RH5fhI/T69KalBNfPaRcaCqcdTfJcSW5FxZ4CMsHj7uyKrGry6sA3VkYhy08WA4CVcXHPI4R+va+Ga0KvTVKxBqpEiR+1r8+hECTyWo1XngqRVQpfJismQwUXe2J9U41T+DaQfJDaB+hdYPm2Xoeu7LlsyPFrUn/Jq3vy4YeU1XVD4BIMGXxg87MUdmZh0CzbeUSc1TgKYccUccTgnVDfgwgvwY/gJYbb7csCrlW5+w== [email protected]

然后将gerrit账号的公钥id_rsa.pub内容拷贝到gerrit界面的 SSH Public Key里面

接下来可以设置别名,方便使用ssh连接gerrit
可以直接在gerrit用户家目录(/home/gerrit)下的.bashrc文件里设置
如下别名是登陆gerrit的admin账号下的操作:
alias ssh-gerrit='ssh -p 29418 -i ~/.ssh/id_rsa 103.10.86.30 -l gerrit'        【公钥已拷贝到gerrit里,这里用私钥去连】
然后source /home/gerrit/.bashrc使其生效
如下:

[gerrit@115]$vim /home/gerrit/.bashrc 
[gerrit@115]$source /home/gerrit/.bashrc
[gerrit@115]$cat /home/gerrit/.bashrc 
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
alias ssh-gerrit='ssh -p 29418 -i ~/.ssh/id_rsa 103.10.86.30 -l gerrit' 
# User specific aliases and functions
[gerrit@115]$ssh-gerrit 

**** Welcome to Gerrit Code Review ****

Hi gerrit管理员, you have successfully connected over SSH.

Unfortunately, interactive shells are disabled.
To clone a hosted Git repository, use:

git clone ssh://gerrit@Zabbix-server:29418/REPOSITORY_NAME.git

Connection to 103.10.86.30 closed.





猜你喜欢

转载自blog.csdn.net/mr_raptor/article/details/76164373
今日推荐