0
点赞
收藏
分享

微信扫一扫

gerrit 如何部署


一、部署前準備

  1. 安裝 openjdk, git
yum -y install java-1.8.0-openjdk.x86_64 git

ps: 如果與 jenkins 對接,git 的版本太低,會有些問題。接下來會寫一篇如何在 centos7 上通過原始碼方式來安裝 git.

  1. 下載 gerrit

地址(需要翻牆):

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

也可從以下百度網盤下載:

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

提取碼: y7cv

二、安裝 gerrit

  1. 建立 gerrit 使用者
useradd gerrit
  1. 安裝 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",如下示例:

[[email protected] ~]$ 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 命令來檢查是否成功,如下輸出:

[[email protected] ~]# 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


举报

相关推荐

0 条评论