Gerrit安裝配置


環境: CentOS 1611 + gerrit-2.11.4 (review.openstack.org)

1. 安裝java1.8 (>1.7)

[root@review ~]# yum install java

[root@review ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
Install jdk 1.8

2. 安裝mariadb (mysql)

 1 [root@review ~]# yum install -y mariadb*       # 安裝
 2 [root@review ~]# systemctl start mariadb.service   #啟動
 3 [root@review ~]# systemctl enable mariadb.service    #開機啟動
 4 
 5 # 首次配置mariadb
 6 [root@review ~]# mysql_secure_installation 
 7 
 8 NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
 9       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
10 
11 In order to log into MariaDB to secure it, we'll need the current
12 password for the root user.  If you've just installed MariaDB, and
13 you haven't set the root password yet, the password will be blank,
14 so you should just press enter here.
15 
16 Enter current password for root (enter for none):     # 默認為空
17 OK, successfully used password, moving on...
18 
19 Setting the root password ensures that nobody can log into the MariaDB
20 root user without the proper authorisation.
21 
22 Set root password? [Y/n]     # 新密碼
23 New password: 
24 Re-enter new password: 
25 Password updated successfully!
26 Reloading privilege tables..
27  ... Success!
28 
29 
30 By default, a MariaDB installation has an anonymous user, allowing anyone
31 to log into MariaDB without having to have a user account created for
32 them.  This is intended only for testing, and to make the installation
33 go a bit smoother.  You should remove them before moving into a
34 production environment.
35 
36 Remove anonymous users? [Y/n] 
37  ... Success!
38 
39 Normally, root should only be allowed to connect from 'localhost'.  This
40 ensures that someone cannot guess at the root password from the network.
41 
42 Disallow root login remotely? [Y/n] n
43  ... skipping.
44 
45 By default, MariaDB comes with a database named 'test' that anyone can
46 access.  This is also intended only for testing, and should be removed
47 before moving into a production environment.
48 
49 Remove test database and access to it? [Y/n] 
50  - Dropping test database...
51  ... Success!
52  - Removing privileges on test database...
53  ... Success!
54 
55 Reloading the privilege tables will ensure that all changes made so far
56 will take effect immediately.
57 
58 Reload privilege tables now? [Y/n] 
59  ... Success!
60 
61 Cleaning up...
62 
63 All done!  If you've completed all of the above steps, your MariaDB
64 installation should now be secure.
65 
66 Thanks for using MariaDB!
67 [root@review ~]# mysql -uroot -p
68 Enter password: 
69 Welcome to the MariaDB monitor.  Commands end with ; or \g.
70 Your MariaDB connection id is 10
71 Server version: 5.5.52-MariaDB MariaDB Server
72 
73 Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.
74 
75 Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
76 
77 MariaDB [(none)]> create user 'gerrit'@'localhost' identified by 'password';
78 MariaDB [(none)]> create database reviewdb;
79 MariaDB [(none)]> grant all on reviewdb.* to 'gerrit'@'localhost';
80 MariaDB [(none)]> flush privileges;
Install&Config Mariadb

3. 安裝gerrit

換mysql數據庫, 安裝verify label, 用http認證, 安裝所有插件

[root@review ~]# java -jar gerrit-2.11.4.war init -d /usr/local/gerrit_site/
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore

*** Gerrit Code Review 2.11.4
*** 

Create '/usr/local/gerrit_site' [Y/n]? 

*** 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]? 
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-5.1.21.jar OK
Server hostname                [localhost]: 
Server port                    [(mysql default)]: 3306
Database name                  [reviewdb]: 
Database username              [root]: gerrit
gerrit's password              : 
              confirm password : 

*** Index
*** 

Type                           [LUCENE/?]: 

*** User Authentication
*** 

Authentication method          [OPENID/?]: ?
       Supported options are:
         openid
         openid_sso
         http
         http_ldap
         client_ssl_cert_ldap
         ldap
         ldap_bind
         custom_extension
         development_become_any_account
         oauth
Authentication method          [OPENID/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 

*** Review Labels
*** 

Install Verified label         [y/N]? y

*** Email Delivery
*** 

SMTP server hostname           [localhost]: 
SMTP server port               [(default)]: 
SMTP encryption                [NONE/?]: 
SMTP username                  : 

*** Container Process
*** 

Run as                         [root]: 
Java runtime                   [/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre]: 
Copy gerrit-2.11.4.war to /usr/local/gerrit_site/bin/gerrit.war [Y/n]? 
Copying gerrit-2.11.4.war to /usr/local/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]? 
Downloading 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:

  /usr/local/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]? 
Use SSL (https://)             [y/N]? 
Listen on address              [*]: 
Listen on port                 [8080]: 
Canonical URL                  [http://review.infra:8080/]: http://192.168.11.9:8080

*** Plugins
*** 

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

Initialized /usr/local/gerrit_site
Executing /usr/local/gerrit_site/bin/gerrit.sh start
Starting Gerrit Code Review: OK
Waiting for server on 192.168.11.9:8080 ... OK
Opening http://192.168.11.9:8080/#/admin/projects/ ...FAILED
Open Gerrit with a JavaScript capable browser:
  http://192.168.11.9:8080/#/admin/projects/
Install Gerrit

 如果啟動出錯, $gerrit_site/logs/error_log 中提示reindex ..... 執行:

java -jar gerrit-2.11.4.jar reindex -d $gerrit_site
...

$gerrit_site/bin/gerrit.sh start
if reindex error

4. gerrit配置

配置文件路徑: $gerrit_sit/etc/gerrit.config

 a. 郵箱配置

  保證兩個文件中的smtpPass密碼(實際郵箱密碼)一致

   

[root@review ~]# vim /usr/local/gerrit_site/etc/gerrit.config
...
[sendemail]
        smtpServer = smtp.163.com
        smtpUser = xxxxxxxxx@163.com
        from = GerritReviewAdmin<xxxxxxxxx@163.com>
        smtpPass = xxxxxxxxx
...

[root@review ~]# vim /usr/local/gerrit_site/etc/secure.config
...
[sendemail]
        smtpPass = xxxxxxxxx
...

Email Config
Email Config

 

打開郵箱, 打開鏈接, 郵箱才注冊成功

 

b. 公鑰私鑰配置

[root@review project]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
5b:e3:bc:0b:c7:19:88:7f:d2:82:09:dc:f9:cd:56:2c root@review.infra
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|                 |
|   . . o . .     |
|    o + S E o    |
|     . = X *     |
|      o B %      |
|         B .     |
|          o.     |
+-----------------+
create key

復制生成的公鑰~/.ssh/id_rsa.pub到gerrit上,並復制gerrit上的known_hosts內容到~/.ssh/known_hosts (也可自動連接時生成)

 

 

 

c. 修改gerrit配置 (添加標簽Verified, Workflow Label)

按上步配置好后, git clone All-Projects, 並修改里面的project.config文件

[root@review All-Projects]# vim project.config
......
[label "Verified"]
        function = MaxWithBlock
        value = -2 Fails
        value = -1 Doesn't seem to work
        value =  0 No score
        value = +1 Works for me
        value = +2 Verified
        defaultValue = 0
[label "Workflow"]
        function = MaxWithBlock
        value = -1 Work in progress
        value =  0 Ready for reviews
        value = +1 Approved
        defaultValue = 0

[root@review All-Projects]# git add .
[root@review All-Projects]# git commit -m "add workflow label"
[detached HEAD a711d36] add workflow label
 1 file changed, 11 insertions(+), 2 deletions(-)
[root@review All-Projects]# git push origin HEAD:refs/meta/config
Counting objects: 5, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 491 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1)
remote: Processing changes: refs: 1, done    
To ssh://gerrit@192.168.11.9:29418/All-Projects
   7105330..a711d36  HEAD -> refs/meta/config
project.config

添加Verifyed和Workflow  選項 

 

d. gerrit html 主題配置

參考openstack的gerrit review: https://review.openstack.org

 簡要教程: https://review.openstack.org/Documentation/config-themes.html

 需要的靜態文件可以從這里提取, 也可自行編寫或修改

部好后效果圖: 

 

5. 部署到Apache 或 Nginx

如果不配置會出現以下錯誤

 

[root@review ~]# yum install -y httpd
Installed:
  httpd.x86_64 0:2.4.6-45.el7.centos.4                                         

Dependency Installed:
  httpd-tools.x86_64 0:2.4.6-45.el7.centos.4   mailcap.noarch 0:2.1.41-2.el7  

Complete!
安裝httpd

 a. Apache配置:

[root@review ~]# vim /usr/local/gerrit_site/etc/gerrit.config                    
[gerrit]
        basePath = git
        canonicalWebUrl = http://192.168.11.9
[database]
        type = mysql
        hostname = localhost
        port = 3306
        database = reviewdb
        username = gerrit
[index]
        type = LUCENE
[auth]
        type = HTTP
[sendemail]
        smtpServer = localhost
[container]
        user = root
        javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre
[sshd]
        listenAddress = *:29418
[httpd]
        listenUrl = proxy-http://192.168.11.9:8080/
[cache]
        directory = cache
gerrit config
[root@review httpd]# vim conf.d/gerrit.conf 

<VirtualHost *:80>  
    ServerName 192.168.11.9  
    ProxyPreserveHost On
    ProxyRequests Off
    ProxyVia Off

    <Proxy *>
        Order deny,allow  
        Allow from all  
    </Proxy>

    <Location />      
      AuthType Basic
      AuthName "Welcomme to Gerrit Code Review Site!"
      Require valid-user
      AuthBasicProvider file
      AuthUserFile /usr/local/gerrit_site/etc/passwords
    </Location>

    AllowEncodedSlashes On
    ProxyPass / http://192.168.11.9:8080/
    #proxyPassReverse / http://127.0.0.1:8080  

</VirtualHost>
apache config

http://192.168.11.9 輸入用htpasswd產生的用戶和密碼登陸, 第一個用戶是管理員用戶(注冊郵箱).

 b. Nginx

[root@review conf]# cat gerrit.conf

server {

listen 80;

server_name localhost;


location / {

          auth_basic              "Gerrit Code Review";

          auth_basic_user_file    /usr/local/gerrit_site/etc/passwords;

          proxy_pass       http://192.168.11.9:8080;
          proxy_set_header        X-Forwarded-For $remote_addr;

          proxy_set_header        Host $host;

    }

}
Nginx

 

6. gitweb對接

安裝, 安裝后的gitweb目錄 /var/www/git

[root@review ~]# yum install -y gitweb
[root@review ~]# git config --file /usr/local/gerrit_site/etc/gerrit.config gitweb.cgi /var/www/git/gitweb.cgi 
[root@review ~]# git config --file /usr/local/gerrit_site/etc/gerrit.config --unset gitweb.url
[root@review ~]# /usr/local/gerrit_site/bin/gerrit.sh restart
Stopping Gerrit Code Review: OK
Starting Gerrit Code Review: OK
[root@review ~]#

 

 

REF1: http://www.cnblogs.com/kevingrace/p/5624122.html

REF2: http://www.cnblogs.com/kevingrace/p/5651447.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM