当前位置: 代码迷 >> 综合 >> gerrit+ldap安装
  详细解决方案

gerrit+ldap安装

热度:18   发布时间:2024-02-08 07:16:44.0

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成员,亦如是;

gerrit项目权限管理