Gerrit,一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。它使用Git作为底层版本控制系统。
引言
- 本文介绍如何搭建gerrit服务器,以及搭配LDAP认证的详细流程。我以在云服务器 ESC (Elastic Compute Service)上搭建为例,ESC系统为 centos7.9。公网IP为121.51.39.239。
- 里面涉及到的密码设置,可以自行选择密码配置,这里我统一设置为123123,避免搞混。
- 如果你清除 LDAP 服务器如何搭建,请参考我的博文 搭建LDAP服务器详细流程,里面详细介绍了LDAP 服务器的搭建流程。
资源包准备
- 有些资源在centos中无法通过
yum install
安装,需要下载后手动安装。 - 下面的下载链接中有个 Gerrit 资源压缩包,需要提前下载准备好。
链接:https://pan.baidu.com/s/1KspZJGBzjXt0QIm3ITE2QQ?pwd=xofo 提取码:xofo - 下载完成后,需要在Windows下解压出来得到 gerrit_src 文件夹,里面包括 gerrit 安装包 (
gerrit-2.13.11.war
) , 以及 Gerrit 插件 (gerrit_lib.tar.gz
).后续将这两个文件上传到 centos 的根路径中。需要进行手动安装。
安装部署
1. 安装 gerrit
- 安装git
yum -y install git
- 获取 gerrit 资源包
将一开始准备的资源包gerrit-2.13.11.war
和gerrit_lib.tar.gz
软件包上传至/root
目录 - 安装java(java版本要大于1.7)
yum -y install java
2. 安装数据库
-
安装数据库mysql
yum -y install mariadb*
-
启动数据库
systemctl start mariadb systemctl enable mariadb
-
初始化数据库
[root@codesweet ~]# mysql_secure_installation Enter current password for root (enter for none): # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车 Set root password? [Y/n] # 设置密码,y New password: # 新密码 123456 Re-enter new password: # 再次输入密码 123456 Remove anonymous users? [Y/n] # 移除匿名用户, y Disallow root login remotely? [Y/n] # 拒绝root远程登录,n Remove test database and access to it? [Y/n] # 删除test数据库,y Reload privilege tables now? [Y/n] # 重新加载权限表,y。或者重启服务也许
-
数据库字符集配置
a.vim /etc/my.cnf
,在 [mysqld] 标签下添加:init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAMES utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake
b.
vim /etc/my.cnf.d/client.cnf
,在 [client] 标签下添加:default-character-set=utf8
c.
/etc/my.cnf.d/mysql-clients.cnf
,在 [mysql] 标签下添加default-character-set=utf8
d. 重启数据库服务
systemctl restart mariadb
3. 配置启动
- 登录数据库
mysql -p123456
- 创建数据库
create database reviewdb; grant all privileges on reviewdb.* to "gerrit"@"%" identified by "123456";
- 刷新权限并退出
flush privileges; exit;
- 创建gerrit用户
adduser gerrit
- 切换到gerrit用户
cd / \cp gerrit-2.13.11.war /home/gerrit/ \cp gerrit_lib.tar.gz /home/gerrit/ su - gerrit
- 初始化环境
mkdir -p /home/gerrit/code_review tar xf gerrit_lib.tar.gz -C code_review/
4. 安装 gerrit
-
安装 gerrit
java -jar gerrit-2.13.11.war init -d /home/gerrit/code_review
ldap认证的初始化配置方式如下:
*** Gerrit Code Review 2.13.11 *** Create '/home/gerrit/code_review' [Y/n]? 回车 *** Git Repositories *** Location of Git repositories [git]: 回车 *** SQL Database *** Database server type [h2]:mysql *** User Authentication *** Authentication method [OPENID/?]: LDAP LDAP server [ldap://localhost]: ldap://121.51.39.239 LDAP username : cn=admin,dc=codesweet,dc=com cn=admin,dc=bkce,dc=com's password : 123456 confirm password : 123456 Account BaseDN [DC=168,DC=56,DC=85]: ou=users,dc=codesweet,dc=com Group BaseDN [ou=users,dc=bkce,dc=com]: ou=users,dc=codesweet,dc=com Enable signed push support [y/N]? 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.13.11.war to /home/gerrit/code_review/bin/gerrit.war [Y/n]? y Copying gerrit-2.13.11.war to /home/gerrit/code_review/bin/gerrit.war *** SSH Daemon *** Listen on address [*]: 回车 Listen on port [29418]: 回车 Gerrit Code Review is not shipped with Bouncy Castle Crypto SSL v152 If available, Gerrit can take advantage of features in the library, but will also function without it. Download and install it now [Y/n]? y Downloading https://repo1.maven.org/maven2/org/bouncycastle/bcpkix-jdk15on/1.52/bcpkix-jdk15on-1.52.jar ... OK Checksum bcpkix-jdk15on-1.52.jar OK Gerrit Code Review is not shipped with Bouncy Castle Crypto Provider v152 ** This library is required by Bouncy Castle Crypto SSL v152. ** Download and install it now [Y/n]? y Downloading https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk15on/1.52/bcprov-jdk15on-1.52.jar ... OK Checksum bcprov-jdk15on-1.52.jar OK 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://linux-node83.domain.local:8080/]: http://121.51.39.239:8080/ *** Cache *** *** Plugins *** Installing plugins. Install plugin commit-message-length-validator version v2.13.11 [y/N]? y Installed commit-message-length-validator v2.13.11 Install plugin download-commands version v2.13.11 [y/N]? y Installed download-commands v2.13.11 Install plugin hooks version v2.13.11 [y/N]? y Installed hooks v2.13.11 Install plugin replication version v2.13.11 [y/N]? y Installed replication v2.13.11 Install plugin reviewnotes version v2.13.11 [y/N]? y Installed reviewnotes v2.13.11 Install plugin singleusergroup version v2.13.11 [y/N]? y Installed singleusergroup v2.13.11 Initializing plugins. No plugins found with init steps.
-
启动 gerrit
/home/gerrit/code_review/bin/gerrit.sh restart
-
配置文件
上面的安装步骤后续如果有些配置想要更改的话,可以对/home/gerrit/code_review/etc/gerrit.config
文件进行更改vim /home/gerrit/code_review/etc/gerrit.config
然后重启 gerrit
/home/gerrit/code_review/bin/gerrit.sh restart
我的 gerrit.config 文件内容:
[gerrit] basePath = git serverId = 3c7f6094-4b63-4c30-a4e3-7e1805a3f1ed canonicalWebUrl = http://121.51.39.239:8080/ [database] type = mysql hostname = localhost database = reviewdb username = gerrit [auth] type = LDAP [ldap] server = ldap://121.51.39.239 username = cn=admin,dc=codesweet,dc=com accountBase = ou=users,dc=codesweet,dc=com groupBase = ou=users,dc=codesweet,dc=com [receive] enableSignedPush = false [sendemail] #smtpServer = localhost enable = true smtpServer = smtp.qq.com smtpServerPort = 465 smtpEncryption = SSL sslVerify = true smtpUser = 24611***@qq.com smtpPass = dmytimlooemd*** from = 24611***@qq.com [container] user = gerrit javaHome = /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.322.b06-1.an7.x86_64/jre [sshd] listenAddress = *:29418 [httpd] listenUrl = http://*:8080/ [cache] directory = cache [gitweb] type = gitweb cgi = /var/www/git/gitweb.cgi
-
配置 gerrit 服务器邮箱
a. 如果需要邮箱推服务,就是提交代码后,会有邮件告知 code review 审查人员。那么就需要配置 gerrit 服务器邮箱,可以在 gerrit.config 中进行配置。b. gerrit 服务器邮箱只有一个,起转发作用,就是将某个 gerrit 客户端的信息转发给另一个或多个客户端。
c. 如果你的服务器邮箱配置的是 qq 邮箱 gerrit.config 中 sendemail 字段中如果是qq邮箱,则按照下述配置,里面最终要的一点不要搞错,smtpPass填的不是邮箱密码,而是授权码,这个授权码是需要提前到qq邮箱的设置中开启smtp授权的,开启后会得到授权码。开启方法:qq邮箱如何开启SMTP服务
[sendemail] #smtpServer = localhost enable = true smtpServer = smtp.qq.com smtpServerPort = 465 smtpEncryption = SSL sslVerify = true smtpUser = 24611***@qq.com smtpPass = dmytimlooemd*** from = 24611****@qq.com
d. 163 邮箱也类似的步骤
[sendemail] #smtpServer = localhost enable = true smtpServer = smtp.163.com smtpServerPort = 465 smtpEncryption = SSL sslVerify = true smtpUser = 788844***@163.com smtpPass = dmdddsemd*** from = 788844***@163.com
管理员用户登录
1. 在LDAP上注册用户
- 先登录 LDAP 服务器
- 创建用户组
a. 先点击users
,再点击创建一个子目录
b. 点击 Posix Group
c. 输入组名,然后点击创建对象
d. 然后点击提交
- 创建用户
a. 先点击users
,再点击创建一个子目录
b. 点击 User Accout
c. 创建用户对象
d. 点击提交
第一次登陆gerrit的用户默认为超级管理员用户,管理员可以创建仓库,后面登陆的用户都是普通用户,普通用户无法创建仓库,除非被管理员赋予权限。 - 添加邮箱
a. 点击eric
,然后点击添加新的属性
,然后在选框中选中 Email
b. 在添加属性
栏中的下拉框选中Email
,
c. 然后填写邮箱信息后直接回车即可
d. 然后点击Update Object
- web 端登录 gerrit
a. 打开浏览器:http://121.51.39.239:8080
b. 输入用户名eric
和密码123456
,然后点击Sign In
c. 登陆成功后,可以看到可以创建仓库
在gerrit服务器上集成gitweb
-
安装gitweb
yum install gitweb
安装完成后会有如下文件:/var/www/git/gitweb.cgi
-
配置gitweb
修改gitweb的配置文件(/etc/gitweb.conf),将配置项“$projectroot”修改为gerrit的git仓库目录$projectroot = "/etc/gerrit/git"
-
配置gerrit
修改gerrit的配置文件(gerrit.config),添加如下配置文章来源:https://www.toymoban.com/news/detail-432840.html[gitweb] type = gitweb cgi = /var/www/git/gitweb.cgi
-
验证是否成功
可以看到gitweb
字样就表示成功了
点击gitweb
,可以看到下述内容表示成功
文章来源地址https://www.toymoban.com/news/detail-432840.html
到了这里,关于搭建gerrit服务器+LDAP认证+集成gitewb详细流程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!