centos7 gerrit + nginx 部署

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Hello_NB1/article/details/85320598

一、部署前准备

1. 安装 openjdk, git

yum -y install java-1.8.0-openjdk.x86_64 git

ps: 如果与 jenkins 对接,git 的版本太低,会有些问题。接下来会写一篇如何在 centos7 上通过源码方式来安装 git.

2. 下载 gerrit

地址(需要翻墙):

https://gerrit-releases.storage.googleapis.com/gerrit-2.16.2.war

也可从以下百度网盘下载:

https://pan.baidu.com/s/1D1Pf6d0krQCHaIGrTuXBuw

提取码: y7cv

二、安装 gerrit

1. 创建 gerrit 用户

useradd gerrit

2. 安装 gerrit

cp gerrit-2.16.2.war /home/gerrit/
su - gerrit
java -jar gerrit-2.16.2.war init -d gerrit_site

除了"Authentication method          [openid/?]: http“ 这里输入 http ,其余全部输入 "Enter",如下示例:

[gerrit@localhost ~]$ java -jar gerrit-2.16.2.war init -d gerrit_site
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2018-12-27 19:58:33,458] [main] INFO  com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/gerrit_site/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 2.16.2
*** 

Create '/home/gerrit/gerrit_site' [Y/n]? 

*** Git Repositories
*** 

Location of Git repositories   [git]: 

*** SQL Database
*** 

Database server type           [h2]: 

*** NoteDb Database
*** 

Use NoteDb for change metadata?
  See documentation:
  https://gerrit-review.googlesource.com/Documentation/note-db.html
Enable                         [Y/n]? 

*** Index
*** 

Type                           [lucene/?]: 

*** User Authentication
*** 

Authentication method          [openid/?]: http
Get username from custom HTTP header [y/N]? 
SSO logout URL                 : 
Enable signed push support     [y/N]? 

*** 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.191.b12-1.el7_6.x86_64/jre]: 
Copy gerrit-2.16.2.war to gerrit_site/bin/gerrit.war [Y/n]? 
Copying gerrit-2.16.2.war to gerrit_site/bin/gerrit.war

*** SSH Daemon
*** 

Listen on address              [*]: 
Listen on port                 [29418]: 
Generating SSH host key ... rsa... ed25519... ecdsa 256... ecdsa 384... ecdsa 521... done

*** HTTP Daemon
*** 

Behind reverse proxy           [y/N]? 
Use SSL (https://)             [y/N]? 
Listen on address              [*]: 
Listen on port                 [8080]: 
Canonical URL                  [http://localhost:8080/]: 

*** Cache
*** 


*** Plugins
*** 

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

Initialized /home/gerrit/gerrit_site
Reindexing projects:    100% (2/2) with: reindex --site-path gerrit_site --threads 1 --index projects
Reindexed 2 documents in projects index in 0.1s (15.7/s)
Executing /home/gerrit/gerrit_site/bin/gerrit.sh start
Starting Gerrit Code Review: WARNING: Could not adjust Gerrit's process for the kernel's out-of-memory killer.
         This may be caused by /home/gerrit/gerrit_site/bin/gerrit.sh not being run as root.
         Consider changing the OOM score adjustment manually for Gerrit's PID=3974 with e.g.:
         echo '-1000' | sudo tee /proc/3974/oom_score_adj
FAILED
error: cannot start Gerrit: exit status 1
Waiting for server on localhost:8080 ... OK
Opening http://localhost:8080/#/admin/projects/ ...FAILED
Open Gerrit with a JavaScript capable browser:
  http://localhost:8080/#/admin/projects/

会有 FAILED ,没有关系,默认时间是 90s,可能是等待时间不够造成的。

可以使用 curl 命令来检查是否成功,如下输出:

[root@localhost ~]# curl localhost:8080
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <title>Gerrit Code Review</title>
    <script type="text/javascript">
      var href = window.location.href;
      var p = href.indexOf('#');
      var token;
      if (p >= 0) {
        token = href.substring(p);
        href = href.substring(0, p);
      } else {
        token = '';
      }
      window.location.replace(href + 'login/' + token);
    </script>
  </head>
  <body>
    <p>Redirecting to <a href="login/">Gerrit Code Review</a>.</p>
  </body>
</html>

三、安装 nginx

1. 安装 epel 包
yum install -y epel-release

2. 安装 nginx, httpd-tools
yum install -y nginx httpd-tools

3. 修改 nginx 启动用户
sed -i 's/^user nginx;/user root;/g' /etc/nginx/nginx.conf

4. 新增 gerrit 配置文件:
cat /etc/nginx/conf.d/gerrit.conf
server {
     listen *:81;
     server_name localhost;
     allow   all;
     deny    all;

     auth_basic "Welcomme to Gerrit Code Review Site!";
     auth_basic_user_file /home/gerrit/gerrit_site/etc/passwd;

     location / {
        proxy_pass  http://127.0.0.1:8080;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host $host;
     }
}

5. 使用 gerrit 用户,并设置密码为 gerrit
htpasswd -b -c /home/gerrit/gerrit_site/etc/passwd gerrit gerrit

6. 启动 nginx 服务
systemctl start nginx

接下来,可以通过浏览器访问本地 81 端口,进入 gerrit 了:

http://localhost:81

四、邮箱配置

1. gerrit.config 中修改 sendmail 的配置信息,参考如下
cat gerrit_site/etc/gerrit.config 
...
[sendemail]
	enable = true
	smtpServer = smtp.qq.com
	smtpUser = <your qq>@qq.com
	smtpPass = <passwd>
        from = <your qq num>@qq.com
...

2. secure.config 新增 sendemail, smtpPass 与 gerrit.config sendemail 的 smtpPass 要一致
cat gerrit_site/etc/secure.config 
[auth]
	registerEmailPrivateKey = 28Fg47VPJdTn7MTakbDrhQNQzvCMnrjo9HE=
[sendemail]
	smtpPass = <passwd>

五、gitweb

1. 安装 gitweb
yum install -y gitweb

2. gerrit 中配置 gitweb
cat gerrit_site/etc/gerrit.config 
...
[gitweb]
        cgi = /var/www/git/gitweb.cgi
        type = gitweb

3. 重启 gerrit
./gerrit_site/bin/gerrit.sh restart

(本篇完)

猜你喜欢

转载自blog.csdn.net/Hello_NB1/article/details/85320598
今日推荐