安装
git安装略过
安装git-review
[root@master ~]# yum install git-review Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile
- epel: mirrors.aliyun.com
Resolving Dependencies –> Running transaction check —> Package git-review.noarch 0:1.24-5.el7 will be installed –> Finished Dependency Resolution
Dependencies Resolved
===============================================================================================================================================================================================
Package Arch Version Repository Size
===============================================================================================================================================================================================
Installing:
git-review noarch 1.24-5.el7 epel 57 k
Transaction Summary
===============================================================================================================================================================================================
Install 1 Package
安装gitweb
1)# yum install gitweb 2)修改git.conf
将 “Alias /git /var/www/git” 改为 “Alias /gitweb /var/www/git” 3)修改gitweb.conf
将$projectroot = “/home/xxx” 设置为git代码库所在的文件夹,这里我们设置为gerrit配置的代码库路径/data1/gerrit2.8.4/git
安装gerrit
下载gerrit安装包 gerrit的下载地址: https://www.gerritcodereview.com/releases/README.md 我使用的gerrit版本是2.15.1。 下载完成之后会发现是一个war的包,所以我们的Java环境一定要安装正确。 新建gerrit专用用户 新建一个用户用来专门管理gerrit相关的内容。 在root用户(或者使用 sudo 命令)下面输入下面的命令:
$ adduser gerrit
$ su gerrit
建好用户以后,我们可以把之前下载好的gerrit安装包拷贝到/home/gerrit/目录下,一会方便gerrit用户来安装。 安装gerrit 在gerrit用户的目录(home/gerrit)下面,执行下面的命令:
$ java -jar gerrit-2.13.4.war init -d ~/gerrit_site
这个命令的意思是执行安装gerrit,会在当前目录下新建一个文件夹gerrit_site用来作为gerrit的根目录,在这个目录中,会安装git仓库,以及gerrit的web页面,还有gerrit的bin,etc等文件夹。 然后就开始安装过程了,安装的过程会询问很多问题,有一些判断性的问题会用[y/N]这样的形式,大写的字母表示默认,我们直接敲回车就表示采用默认的安装选项。 注意: 我们安装的时候,可以只在 Authentication method 时输入 http ,其他全部回车用默认值,因为其他配置我们待会可以通过 etc/gerrit.config 文件进行修改 期间可能会下载两个文件,这两个文件虽然都很小(不到3M),但是可能是因为GFW的原因,下载速度很慢。你可以到 /lib 文件夹下面查看他们是不是已经下载完了,或者你手动把那两个文件下载完之后,scp到 /lib 下面。 如果你发现已经下完了,但是安装过程卡主了,没有关系,直接 ctrl+c 然后重新安装就可以了。
安装OpenLDAP
安装 openldap 是一个比较独立的工作,一般公司都已经部署了 ldap,那么可以直接跳过这一步。由于 gtt 在的公司还没有,为了方便 内部使用,决定自行安装一个,未来用户修改密码也方便。
安装并启动
yum -y install *openldap*
systemctl enable slapd
systemctl status slapd
# 确认 389 端口开启
ss -antp|grep 389
LISTEN 0 128 *:389 *:* users:(("slapd",14846,8))
生成一个 ldap 的 “root” 密码
这里只是生成,还没有设置到系统中,建议开一个记事本记住备用。如果你的密码和我不一样,最后的 {SSHA} 内容肯定不一样,这里主意不要直接复制。
# slappasswd
New password:
Re-enter new password:
{SSHA}bHSiwuPJEypHS6zHSE2Uy7M69sQjmkPL
正式修改 dn 和 “root” 用户密码
# vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
将 olcSuffix 和 olcRootDN 修改成我们需要的数据
olcSuffix: dc=gaott,dc=info
olcRootDN: cn=Manager,dc=gaott,dc=info
在同一个文件中新加一行写明 Manager 用户的密码
这里的 Manager 就是 ldap 系统中 gaott.info 目录的 root 用户,所以上文一直使用引号的 root。内容写记事本中记录的 {SSHA} 那 串。
olcRootPW: {SSHA}bHSiwuPJEypHS6zHSE2Uy7M69sQjmkPL
修改 /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif 文件中的 olcAccess 内容
将所有 dc=my-domain,dc=com 替换成 dc=gaott,dc=info
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=Manager,dc=gaott,dc=info" read by * none
确认配置全部正确
# slaptest -u
578ce784 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
578ce784 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded
复制默认的数据库配置文件
[root@linux1 cn=config]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@linux1 cn=config]# chown -R ldap:ldap /var/lib/ldap/
新增默认的 schema
[root@linux1 cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
[root@linux1 cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
[root@linux1 cn=config]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
生成初始化的 ldap 数据: /root/base.ldif
dn: dc=gaott,dc=info
objectClass: top
objectClass: dcObject
objectclass: organization
o: gaott.info
dc: gaott
dn: cn=Manager,dc=gaott,dc=info
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=people,dc=gaott,dc=info
objectClass: organizationalUnit
ou: people
dn: ou=group,dc=gaott,dc=info
objectClass: organizationalUnit
ou: group
新增一个用户作为 gerrit 的管理员 /root/user.ldif
dn: cn=test,ou=people,dc=gaott,dc=info
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: test
displayName: test user
userPassword: test@superpassword!
mail: test@gaott.info
sn: test
使用之前设置的 “root” 用户权限插入 base.ldif 和 user.ldif
会提示让你输入密码,密码就是之前 slappasswd 时输入的。
ldapadd -x -W -D "cn=Manager,dc=gaott,dc=info" -f /root/base.ldif
ldapadd -x -W -D "cn=Manager,dc=gaott,dc=info" -f /root/user.ldif
测试数据是否插入成功,如果搜索到对应用户,说明 ldap 安装成功。
ldapsearch -x cn=test -b dc=gaott,dc=info
在本文中 ldap 作为 gerrit 的用户认证中心,所以只有 LDAP 系统中有的用户才能登陆 gerrit,换言之,老用户修改密码只能通过 LDAP 修改,新增用户也只能通过 LDAP 系统新增,gerrit 中是不能做相应操作的。
重新启动服务
nginx
service nginx restart
gerrit
/home/gerrit/gerrit_site/bin/gerrit.sh restart
新增一个用户
htpasswd -m /home/gerrit/gerrit.password master
gerrit运维
通过gerrit set-account修改用户
ssh ha gerrit set_account --add-email user99@163.com user99