Gerrit安装

1.安装gerrit

[[email protected] ~]$ su - gerrit2
Password:
[[email protected] ~]$ ll
total 83872
-rw-r--r-- 1 root root 85872756 Jun 6 09:58 gerrit-2.14.war
-rw-r--r-- 1 gerrit2 root 432 Jun 23 17:43 gerrit2.txt
drwxr-xr-x 14 gerrit2 root 4096 Jun 7 09:19 gerrit_site
[[email protected] ~]$ java -jar gerrit-2.14.war init -d ~/gerrit_site_http
Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
[2018-06-23 23:48:49,385] [main] INFO com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit2/gerrit_site_http/etc/gerrit.config; assuming defaults

*** Gerrit Code Review 2.14
***

Create ‘/home/gerrit2/gerrit_site_http‘ [Y/n]?

*** Git Repositories
***

Location of Git repositories [git]:

*** SQL Database
***

Database server type [h2]:

*** Index
***

Type [LUCENE/?]: ?
Supported options are:
lucene
elasticsearch
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 :
Enable signed push support [y/N]?

*** 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 [gerrit2]:
Java runtime [/usr/mbb/install/jdk1.8.0_144/jre]:
Copy gerrit-2.14.war to /home/gerrit2/gerrit_site_http/bin/gerrit.war [Y/n]?
Copying gerrit-2.14.war to /home/gerrit2/gerrit_site_http/bin/gerrit.war

*** SSH Daemon
***

Listen on address [*]:
Listen on port [29418]:
Generating SSH host key ... rsa... dsa... done

*** HTTP Daemon
***

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

*** Cache
***

*** Plugins
***

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

Initialized /home/gerrit2/gerrit_site_http
Executing /home/gerrit2/gerrit_site_http/bin/gerrit.sh start
Starting Gerrit Code Review:
OK
Waiting for server on iZ2zeajrmfwuxekm559go1Z:8080 ... OK
Opening http://iZ2zeajrmfwuxekm559go1Z:8080/#/admin/projects/ ...FAILED
Open Gerrit with a JavaScript capable browser:
http://iZ2zeajrmfwuxekm559go1Z:8080/#/admin/projects/
[[email protected] ~]$

2.配置gerrit
修改/home/gerrit2/gerrit_site_http/etc/gerrit.config配置文件

注意下面两个配置项,修改后如下:

[gerrit]
basePath = git
serverId = 6cab8d0c-5b1e-4a65-8696-0d038780b20d
#canonicalWebUrl = http://iZ2zeajrmfwuxekm559go1Z:8080/
canonicalWebUrl = http://172.16.181.80:8080/ #修改 nginx的代理端口

.........

[httpd]
listenUrl = http://*:8080/ # 未改
重启gerrit
[[email protected] conf]# /home/gerrit2/gerrit_site_http/bin/gerrit.sh restart
Stopping Gerrit Code Review: OK
Starting Gerrit Code Review: OK

修改nginx
[[email protected] ~]# cd /usr/local/nginx/conf
[[email protected] conf]# ls
fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf
fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default
[[email protected] conf]# cp nginx.conf nginx.conf.bak20180624
[[email protected] conf]# vi /usr/local/nginx/conf/nginx.conf
...
server {
listen 80;
...
location / {
auth_basic "Gerrit Code Review";
auth_basic_user_file /home/gerrit2/gerrit_site_http/etc/passwords;
proxy_pass http://172.16.181.80:8080;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
}
...

创建认证权限(也就是登陆的时候输入的权限)

注意:第一次加-c参数是为了创建密码文件,默认第一个用户是系统管理员

[[email protected] etc]# htpasswd -c /home/gerrit2/gerrit_site_http/etc/passwords gerrit2
-bash: htpasswd: command not found
[roo[email protected] etc]# yum install htpasswd
Loaded plugins: security
base | 3.7 kB 00:00
epel | 3.2 kB 00:00
extras | 3.4 kB 00:00
updates | 3.4 kB 00:00
Setting up Install Process
No package htpasswd available.
Error: Nothing to do
[[email protected] etc]# yum -y install httpd
....
Complete!
[[email protected] etc]# htpasswd -c /home/gerrit2/gerrit_site_http/etc/passwords gerrit2
New password:
Re-type new password:
Adding password for user gerrit2
[[email protected] etc]# ls
gerrit.config mail passwords secure.config ssh_host_dsa_key ssh_host_dsa_key.pub ssh_host_rsa_key ssh_host_rsa_key.pub
[[email protected] etc]# htpasswd /home/gerrit2/gerrit_site_http/etc/passwords sisi
New password:
Re-type new password:
Adding password for user sisi

3.重启nginx

[[email protected] etc]# /usr/local/nginx/sbin/nginx -s reload

浏览器登录 http://172.16.181.80/
弹出认证对话框,填写gerrit2登录
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.

If you are the system administrator of this resource then you should check the error log for details.

Faithfully yours, nginx.

[[email protected] logs]# pwd
/usr/local/nginx/logs
[[email protected] logs]# ls
access.log error.log nginx.pid
[[email protected] logs]# vi error.log
2018/06/24 08:50:23 [crit] 27123#0: *51 open() "/home/gerrit2/gerrit_site2/etc/passwords" failed (13: Permission denied), client: 172.16.200.188, server: localhost, request: "GET /favicon.ico HTTP/1.1", host: "172.16.181.80"
[[email protected] conf]# ps -ef|grep nginx
root 14711 1 0 Jun23 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody 27123 14711 0 08:44 ? 00:00:00 nginx: worker process

工作进程用户是nobody
[[email protected] conf]# setfacl -R -m u:nobody:rx /home/gerrit2

Question:
Sign Out Failure

也许你会发现用gerrit+HTTP认证,通过web登陆后,点击右上角的Sign Out无法登出。要么是依然保持登陆的状态,要么就是直接出错。

不要以为怎么了,其实这是正常现象,以下这段话是从网上看到的:

You are using HTTP Basic authentication. There is no way to tell a browser to quit sending basic authentication credentials, to logout with basicauthentication is to close the Webbrowser.
More info, go to https://stackoverflow.com/questions/4154187/how-to-logout-user-for-basic-http-authentication

增加几个用户
[[email protected] etc]$ sudo htpasswd -b passwords newalan newalan
Adding password for user newalan
[[email protected] etc]$ sudo htpasswd -b passwords dev1 dev1
Adding password for user dev1
[[email protected] etc]$ sudo htpasswd -b passwords dev2 dev2
Adding password for user dev2
[[email protected] etc]$ sudo htpasswd -b passwords mgr1 mgr1
Adding password for user mgr1
[[email protected] etc]$ sudo htpasswd -b passwords mgr2 mgr2

4.配置邮箱

htpasswd /home/gerrit2/gerrit_site_http/etc/passwords newalan

配置gerrit.config

登录gerrit注册邮箱
邮箱收到注册链接,http://172.16.181.80:8080/#/VE/fPhKd27E0+4hfHzLSaH5Sp1RCuhou853CdvP2Q==$MTAwMDAwMjp6aGFuZmVuZy56aGFuZ0AxNjMuY29t
去掉链接中的8080端口号,再粘贴到地址栏可用

5.安装gitweb

[[email protected] ~]$ sudo yum install -y gitweb
gitweb安装后的目录路径是/var/www/git

git config --file /home/gerrit2/gerrit_site_http/etc/gerrit.config gitweb.cgi /var/www/git/gitweb.cgi
git config --file /home/gerrit2/gerrit_site_http/etc/gerrit.config --unset gitweb.url

6.公私钥
在gerrit本机上使用下面的命令生成管理员账号(这里将gerrit作为管理员)的公私钥
[[email protected] .ssh]$ ssh-keygen -t rsa -C "GerritAdmin" -f ~/.ssh/gerritadmin
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/gerrit2/.ssh/gerritadmin.
Your public key has been saved in /home/gerrit2/.ssh/gerritadmin.pub.
The key fingerprint is:
0a:e4:ed:c8:13:68:b3:dc:f5:0a:7e:64:86:78:34:ad GerritAdmin
The key‘s randomart image is:
+--[ RSA 2048]----+
| |
| |
| .. |
| +o.. |
| +o++o S |
| o.=E*+o |
| o.*+o . |
| . o.. |
| ... |
+-----------------+
[[email protected] .ssh]$ ls
admin admin.pub gerritadmin gerritadmin.pub known_hosts

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

[[email protected] ~]$ ssh -p 29418 -i ~/.ssh/gerritadmin 172.16.181.80 -l gerrit2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
34:b8:66:84:01:26:96:0a:77:ab:60:0f:07:84:6a:2c.
Please contact your system administrator.
Add correct host key in /home/gerrit2/.ssh/known_hosts to get rid of this message.
Offending key in /home/gerrit2/.ssh/known_hosts:1
RSA host key for [172.16.181.80]:29418 has changed and you have requested strict checking.
Host key verification failed.

删除/home/gerrit2/.ssh/known_hosts 重试

[[email protected] ~]$ ssh-gerrit gerrit gsql
fatal: gerrit2 does not have "Access Database" capability.

异常:admin does not have "Access Database" capability

解决:使用Administrator登陆,在Projects/Access中Global Capabilities Add Group(Access Database)添加Administrators组,然后点击页面最下的“Save Changes”按钮即可

原文地址:https://www.cnblogs.com/newalan/p/9286370.html

时间: 2024-10-07 22:32:20

Gerrit安装的相关文章

Gerrit安装配置

1.准备安装环境 安装JDK 下载jdk的tar包,解压缩,并修改/etc/profile,配置环境变量,这里不再说明 安装git gerrit需要git环境,直接用yum安装 #yum -y install git 安装httpd httpd主要作为反向代理使用,并设置账号密码访问 #yum -y install httpd 创建gerrit安装目录 #mkdir   /home/gerrit2 2.下载Gerrit安装包 下载Gerrit的war包,通常包名为gerrit-xxx.war,x

Gerrit安装及复制到Gitlab

# 直接下载jar文件后 java -jar gerrit-2.14.1.war init -d /opt/gerrit # 安装复制插件 unzip gerrit-2.14.1.war ssh -p 29418 [email protected] gerrit plugin install -n replication.jar - < ./WEB-INF/plugins/replication.jar # 如果安装时提示权限问题,要在gerrit.config 上添加 allowRemoteA

gerrit安装及配置

安装gerrit: java -jar gerrit-2.8.1.war init -d gerrit 配置信息如下: [gerrit] basePath = git canonicalWebUrl = http://gerrit.globebuy.com/ [database] type = h2 database = db/ReviewDB [auth] type = HTTP [sendemail] smtpServer = localhost [container] user = roo

Gerrit安装部署

Gerrit简介 Gerrit,一种免费.开放源代码的代码审查软件,使用网页界面.利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改. 一.创建gerrit用户 [root@devops02 ~]# adduser gerrit -m You have mail in /var/spool/mail/root [root@devops02 ~]# passwd gerrit Changing password for user gerri

Gerrit的安装和使用说明

Gerrit安装和使用说明 搞了几天,资料也查了不少,终于磨出来了.有什么不对的地方,大家及时提出来...,开始吧 系统 Centos6.5 x64 内存 2G 硬盘 20G 数据库 Mysql5.1 服务器 Apache2.2 准备 #yum update #yum install git #yum install java-1.7.0-openjdk.x86_64 #yum install mysql-server #service mysqld start 配置mysql #mysql –

[Gerrit服务器集群搭建(一)]初识Gerrit代码审查系统

一.写在前面 公司安卓部门在扩张,尤其是我们这一拨新人进来后,本来负载就很重的Gerrit服务器更加吃不消了.前段时间,我有幸全程参与搭建了Gerrit服务器集群,在这里也将搭建过程总结记录下来,给自己也给他人做一个参考,有误或者有更好的建议都期待指教~ 二.Gerrit服务器简介 简言之,就是基于Git引入的强制代码审核机制,原来是git push->Git库,现在则变成了git push->Gerrit(代码管理者审核通过)->Git库.当然这是个不严谨的描述,较为详细的介绍请参见h

3、Gerrit用户项目权限管理

在gerrit中权限控制是基于群组的. 每个用户有一个或者多个群组, 访问权限被赋予这些群组.访问权限不能赋予个人用户 在Gerrit系统自带下面的群组 Anonymous Users Change Owner Project Owners Registered Users Anonymous Users 所有用户都是匿名用户成员, 所有用户都能继承Anonymous Users所有访问权限. 权限的解读参考:http://www.cnblogs.com/lexuele/p/5133601.ht

company code review gerrit VS gitlab

Code  review的意义 程序员的世界里,不同的人,不同的背景,不同的工作经历,水平和习惯各异. 就像罗卜和白菜,谁都不会嫌弃谁,那是因为他们有不同的标准,而在程序的世界里,由开源社区,有无数前辈根据自己毕生的经验总结出的规律,正逐渐成为程序界的标准,有了标准,谁走歪了,谁走正了,一目了然. 中国特殊的国情,导致程序员不受重视,缺乏工程师文化,导致程序员跳槽频率远高于传统行业或互联网的其他职业,导致业务线的代码不断地被***,惨不忍睹,极难维护,不是程序员不认真,而是企业没有指定标准,每个

4、Gerrit+Jenkins搭建CI系统

一,CI系统流程 开发人员将本地Git仓库中的代码更新后,push到Gerrit系统上对应的项目仓库中:该动作会触发Gerrit系统发送邮件通知给Owner,Owner此时需要登录Gerrit Web页面,进行Code Review(代码审核).如果审核通过,则Owner进行Submit提交动作.此时开发人员push的代码才会Merge(合并)到Gerrit服务器上的对应项目仓库中.如果审核不通过,则开发人员需要修改代码后再次push,直到审核通过为止.而Jenkins被Gerrit系统上某一事