gerrit ,a web code review tool ,with ldap auth install
一把辛酸泪
0. 安装前环境准备
0.0.新建用户
-
为gerrit系统新建专有用户,设置密码
adduser gerrit passwd gerrit
-
授予sudo操作权限
在文件/etc/sudoers
中添加gerrit ALL=(ALL:ALL) ALL
0.1.安装java环境
-
使用ftp工具将jdk安装包上传到服务
sudo mkdir /usr/local/java tar xvzf jdk-8u261-linux-x64.tar.gz -C /usr/local/java
-
在全局环境变量文件/etc/profile中添加如下内容
export JAVA_HOME=/usr/local/java/jdk1.8.0_261 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
-
测试
java -version
0.2.版本选择
常用的版本有2.11、2.16、3.2(最新)等
其中版本选择将涉及到如下差别:
- 对应版本的插件下载,2.*版本,目前插件官网只有2.16版本还提供下载插件;
- UI,新版本UI美观,功能更多,本次安装选用的 2.16 具有新旧两个UI界面,用户可以根据使用习惯,可以相互切换;
- 下载代码库方式 3.2等高版本似采用下载压缩包方式取代了ssh和http链接下载;
1. 权限配置
gerrit支持openId/http/ldap三种方式进行权限认证
本次搭建中使用,在企业级用户中支持更多的ldap系统,进行统一权限鉴权
-
安装openldap等工具,参考ldap安装,添加用户
sudo apt-get install slapd ldap-utils sudo dpkg-reconfigure slapd #进行ldap配置,包括管理员用户密码等 sudo ufw allow ldap #开启防火墙
-
安装phpldapadmin软件提供web页面管理ldap服务器
在web页面上,登录安装ldap时设置的管理员信息,即可添加管理用户和组织;
-
web可能会遇到php版本问题造成的错误信息提示,可参照 php版本问题 解决
-
在web中,添加管理员邮箱,之后再登录gerrit系统,否则,gerrit用户将由于没有邮箱地址,导致部分操作无法使用;
-
在gerrit中了配置ldap相关信息
文件gerrit.config
[ldap]server = ldap://localhostusername = CN=admin,DC=ruijiarobot,DC=comaccountBase = ou=People,dc=ruijiarobot,dc=comgroupBase = ou=Groups,dc=ruijiarobot,dc=com
文件
secure.config
[ldap]password = ***** #密码,因为加密而不可见
第一次登陆gerrit系统的用户,将成为系统的管理,请谨慎操作
2. 网络配置
-
在gerrit.config文件中,配置网络为不常用端口,如9080,
并将localhost或机器名代指的网络地址改为局域网IP地址,否则可能在页面跳转中失败;[gerrit]basePath = ~/repositoriesserverId = 9ac85ea0-3c49-449e-972e-f84efd751228canonicalWebUrl = http://192.168.50.10:9080/
-
如果使用http方式校验,则还需要配置apache和nginx反向代理;
3. 安装gitweb
-
配置git仓库地址
文件/etc/gitweb.conf
中设置$projectroot = "/home/git"; #为安装时git仓库目录
-
在gerrit配置添加gitweb路径
[gitweb]type = gitwebcgi = /usr/share/gitweb/gitweb.cgi
注:软件安装路径可能不同,可以通过find / -name gitweb.cgi
命令进行查找
- 完成后即可在代码仓库详情列表后看到(gitweb)字样,点击即可在web页面查看代码仓库相关细节
4. 添加邮箱
在review_site/etc/gerrit.conf
如下配置
shell [sendemail] enable = true smtpServer = smtp.exmail.qq.com smtpServerPort = 465 smtpEncryption = SSL sslVerify = true smtpUser = gerrit@ruijiarobot.com smtpPass = ****** #密码,因为加密而不可见 from = CodeReview<gerrit@ruijiarobot.com>
当提交内容状态修改时,相关成员将收到gerrit用户的邮箱通知
5. 添加自启动
Ubuntu 18.04默认进程启动管理已经切换至systemd,不再使用SysV。
如果想像之前一样使用/etc/rc.local设置开机自启动,应进行如下设置
-
在
/lib/systemd/system/rc-local.service
中新增如下内容:[Install] WantedBy=multi-user.target Alias=rc-local.service
-
设置开机自启动rc-local
systemctl enable rc-local
-
创建/etc/rc.local,写入如下内容
\#!/bin/bash ~/review_site/bin/gerrit.sh start EOF
-
新增执行权限
chmod +x /etc/rc.local
5. 项目权限配置
- 系统新建项目默认可以为所有用户查看,因所有新建项目都默认继承All-projects仓库权限,修改All-projects可读权限限制注册用户和匿名用户即可,之后如果需要添加,则只需要在特定项目对该用户放开可读权限即可,如需要添加review成员,亦如是;