Step 1.安装Gerrit
1.安装mysql
- $ rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
- $ yum install mysql-community-server
- $ service mysqld start
- $ mysql> alter user 'root'@'localhost' identified by 'M)OKM*UHB7ygv6';
2.数据库设置
- mysql> create database reviewdb;
- Query OK, 1 row affected (0.03 sec)
-
- mysql> CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'GOKM*UHB7ygv6';
- Query OK, 0 rows affected (0.06 sec)
-
- mysql> CREATE USER 'gerrit'@'127.0.0.1' IDENTIFIED BY 'GOKM*UHB7ygv6';
- Query OK, 0 rows affected (0.05 sec)
-
- mysql> flush privileges;
- Query OK, 0 rows affected (0.03 sec)
-
- mysql> grant all privileges on reviewdb.* to gerrit@localhost identified by 'GOKM*UHB7ygv6';
- Query OK, 0 rows affected, 1 warning (0.02 sec)
-
- mysql> grant all privileges on reviewdb.* to gerrit@'192.168.82.144' identified by 'GOKM*UHB7ygv6';
- Query OK, 0 rows affected, 1 warning (0.04 sec)
-
- mysql> flush privileges;
- Query OK, 0 rows affected (0.01 sec)
3.建立专有帐户
- $ adduser gerrit
- $ su - gerrit
4.安装gerrit
下载地址:https://gerrit-releases.storage.googleapis.com/
安装文章:https://www.gerritcodereview.com/linux-quickstart.html
- 前提需要安装jdk
- 这个命令的意思是执行安装gerrit,会在当前目录下新建一个文件夹
gerrit_site
用来作为gerrit的根目录,在这个目录中,会安装git仓库,以及gerrit的web页面,还有gerrit的bin,etc等文件夹。
然后就开始安装过程了,安装的过程会询问很多问题,有一些判断性的问题会用[y/N]
这样的形式,大写的字母表示默认,我们直接敲回车就表示采用默认的安装选项- 我们安装的时候,可以只在
Authentication method
时输入http
,其他全部回车用默认值,因为其他配置我们待会可以通过etc/gerrit.config
文件进行修改
- $ java -jar gerrit-3.0.1.war init -d review_site
- Using secure store: com.google.gerrit.server.securestore.DefaultSecureStore
- [2019-08-01 11:12:56,738] [main] INFO com.google.gerrit.server.config.GerritServerConfigProvider : No /home/gerrit/review_site/etc/gerrit.config; assuming defaults
-
- *** Gerrit Code Review 3.0.1
- ***
-
- Create '/home/gerrit/review_site' [Y/n]? Y
-
- *** Git Repositories
- ***
-
- Location of Git repositories [git]:
-
- *** 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.ym.163.com
- SMTP server port [(default)]: 465
- SMTP encryption [none/?]:
- SMTP username [gerrit]: digital-zabbix@gadmobe.net
- digital-zabbix@gadmobe.net's password :
- confirm password :
- *** Container Process
- ***
- Run as [gerrit]:
- Java runtime [/usr/local/src/jdk1.8.0_131/jre]:
- Copy gerrit-3.0.1.war to review_site/bin/gerrit.war [Y/n]? Y
- Copying gerrit-3.0.1.war to review_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 [8081]:
- Canonical URL [http://AnnaLinux:8081/]:
- *** Cache
- ***
- *** Plugins
- ***
- Installing plugins.
- Install plugin codemirror-editor version v3.0.1 [y/N]? y
- Installed codemirror-editor v3.0.1
- Install plugin commit-message-length-validator version v3.0.1 [y/N]? y
- Installed commit-message-length-validator v3.0.1
- Install plugin delete-project version v3.0.1 [y/N]? y
- Installed delete-project v3.0.1
- Install plugin download-commands version v3.0.1 [y/N]? y
- Installed download-commands v3.0.1
- Install plugin gitiles version v3.0.1 [y/N]? y
- Installed gitiles v3.0.1
- Install plugin hooks version v3.0.1 [y/N]? y
- Installed hooks v3.0.1
- Install plugin plugin-manager version v3.0.1 [y/N]? y
- Installed plugin-manager v3.0.1
- Install plugin replication version v3.0.1 [y/N]? y
- Installed replication v3.0.1
- Install plugin reviewnotes version v3.0.1 [y/N]? y
- Installed reviewnotes v3.0.1
- Install plugin singleusergroup version v3.0.1 [y/N]? y
- Installed singleusergroup v3.0.1
- Install plugin webhooks version v3.0.1 [y/N]? y
- Installed webhooks v3.0.1
- Initializing plugins.
- Initialized /home/gerrit/review_site
- Reindexing projects: 100% (2/2) with: reindex --site-path review_site --threads 1 --index projects
- Reindexed 2 documents in projects index in 0.3s (7.6/s)
4.配置gerrit
- $ vim /home/gerrit/review_site/etc/gerrit.config
-
- [gerrit]
- basePath = git
- canonicalWebUrl = http://192.168.82.154:8081/
- serverId = 5c9b8389-74b7-46cc-b46b-b60a51cb1b19
- [database]
- type = mysql
- hostname = AnnaLinux
- port = 3306
- database = reviewdb
- username = gerrit
- password = "GOKM*UHB7ygv6"
-
- [container]
- #javaOptions = "-Dflogger.backend_factory=com.google.common.flogger.backend.log4j.Log4jBackendFactory#getInstance"
- #javaOptions = "-Dflogger.logging_context=com.google.gerrit.server.logging.LoggingContext#getInstance"
- user = gerrit
- javaHome = /usr/local/src/jdk1.8.0_131/jre
- [index]
- type = LUCENE
- [auth]
- type = HTTP
- [receive]
- enableSignedPush = false
- [sendemail]
- smtpServer = smtp.ym.163.com
- smtpServerPort = 465
- smtpUser = digital-zabbix@gadmobe.net
- [sshd]
- listenAddress = *:29418
- [httpd]
- listenUrl = http://*:8081/
- [cache]
- directory = cache
- [gitweb]
- type = gitweb
- cgi = /var/www/git/gitweb.cgi
5.nginx 配置
- $ vim /usr/local/nginx/conf/vhost/gerrit.conf
-
- server {
- listen *:81;
- server_name gerrit.microwu.com;
- allow all;
- deny all;
-
- access_log /var/log/gerrit_access.log;
- error_log /var/log/gerrit_error.log;
-
- auth_basic "Welcomme to Gerrit Code Review Site!";
- auth_basic_user_file /home/gerrit/gerrit.password;
-
- location / {
- proxy_pass http://127.0.0.1:8081;
- proxy_set_header X-Forwarded-For $remote_addr;
- proxy_set_header Host $host;
- }
- }
6.登录认证文件
- 那登录认证有了,我们怎么登录呢??就需要前面的
auth_basic_user_file
文件了。- 这里我们需要用apach的
htpasswd
工具来新建这个文件,这也是为什么我们虽然不用到apache的反向代理,仍然需要apache的原因。- 我们通过下面的命令来在
/home/gerrit/
路径下创建认证文件httpd 这个命令的详细解释:
- -c表示create,也就是新建的意思
- 接下来跟上文件要创建的目录以及文件名,我们直接用绝对路径,表示将在
/home/gerrit
目录下新建一个gerrit.password
文件- 最后的admin表示要写入的用户名
接下来你需要在命令行中连续输入两次密码,我们就为admin用户设置好了密码,可以通过vim来查看下这个密码文件,会发现里面是经过加密的。
如果我们想新建别的用户,或者修改某个用户的密码,只需要把
-c
改成-m
就好了,如果还是用-c
并且路径不变的话,就会覆盖掉原来的文件。
$ htpasswd -c /home/gerrit/gerrit.password admin
7.注意事项
- 如果你是在root用户下输入上面的命令 创建了
gerrit.password
文件到/home/gerrit/
目录中,你会发现在登录的时候永远登录不成功,永远会得到服务器500的错误页面。原因是/homt/gerrit/
文件夹的权限问题。- 我们知道,
/home/gerrit/
是我们之前新建的gerrit用户的,那么这个文件夹的权限是700,也就是只允许gerrit用户访问,其他组的用户是访问不了的,虽然这个文件的权限拥有root用户的所有权限,但是因为它放在700权限的文件夹下面,所以同样其他用户是访问不到的。- 这个问题之前纠缠了我好久,通过nginx的日志可以清楚的看到访问拒绝的错误. 所以,我们需要通过下面的命令,来改变gerrit目录的权限
$ chmod 755 /home/gerrit
8.登录gerrit
url: http://192.168.82.154:8081/dashboard/self
user:admin password:admin
说明:gerrit配置了之后,第一个登录成功的用户,自动成为管理员,gerrit会给他分配一个id,1000000
,之后登录的成员会依次自增1,初始时 Full Name 和 Email Address字段都是空的
Step 2.安装gitweb
说明:默认gitweb是安装到apache目录中的,也就是/var/www/
目录下会有一个git
文件夹,专门用来显示gitweb页面
$ yum install gitweb
1.修改gitweb配置文件
说明:默认的文件中所有的内容应该都被注释掉了,我们直接在最后面执行git仓库的位置:
- $ vim /etc/gitweb.conf
-
-
- *************************
- *************************
-
- $projectroot = "/home/gerrit/gerrit_site/git"