一、准备
使用系统:Centos6.5(虚拟机)
使用软件: ldap+git+gerrit, ldap作用户账号密码管理,git仓库存放代码,gerrit作代码review
二、系统及网络配置
1、关闭selinux
[root@gerrit ~]# vim /etc/sysconfig/selinux 修改SELINUX: SELINUX=disabled
2、配置网络
[root@gerrit ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改: ONBOOT=yes BOOTPROTO=static 增加如下几行配置(根据自己实际需求配置): IPADDR=192.168.0.104 (IP地址) NETMASK=255.255.255.0 (掩码) GATEWAY=192.168.0.1 (网关) DNS1=114.114.114.114 (DNS服务器)
3、配置好以上信息后,重启系统
三、JDK环境配置
1、使用远程终端工具连接上服务器,并安装文件传输工具
[root@gerrit ~]# yum install lrzsz –y
2、卸载系统自带JDK
[root@gerrit ~]# rpm -qa | grep java | xargs rpm -e –nodeps
3、上传JDK RPM包到当前目录 并安装(此处使用JDK1.7u79)将安装包拖至xhsell 对话框即可进行上传
[root@gerrit ~]# rpm -ivh jdk-7u79-linux-x64.rpm
4、配置环境变量
[root@gerrit ~]# vim /etc/profile 文件末尾增加如下两行 export JAVA_HOME=/usr/java/jdk1.7.0_79/ export JRE_HOME=/usr/java/jdk1.7.0_79/jre
然后执行如下命令刷新环境变量,并查看是否成功
[root@gerrit ~]# source /etc/profile [root@gerrit ~]# java -version java version "1.7.0_79" Java(TM) SE Runtime Environment (build 1.7.0_79-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
成功看到java版本,JDK环境配置完成
四、安装LDAP
1、使用yum 安装LDAP
[root@gerrit]#yum install openldap-server openldap
2、拷贝配置文件
[root@gerrit ~]# cd /usr/share/openldap-servers/ [root@gerrit openldap-servers]# cp slapd.conf.obsolete /etc/openldap/slapd.conf
3、创建LDAP管理员密码
[root@gerrit openldap-servers]# slappasswd New password: Re-enter new password: {SSHA}5bzZagSr4HiJLkioJi6iocOiU+PgblmF
4、编辑配置文件
[root@gerrit]# vim /etc/openldap/slapd.conf
修改相关cn,dc相关内容,及rootpw密码
database monitor access to * by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.exact="cn=Manager,dc=yangchao,dc=com" read by * none ####################################################################### # database definitions ####################################################################### database bdb suffix "dc=yangchao,dc=com" checkpoint 1024 15 rootdn "cn=Manager,dc=yangchao,dc=com" rootpw {SSHA}5bzZagSr4HiJLkioJi6iocOiU+PgblmF
5、拷贝拷贝DB_CONFIG文件
[root@gerrit]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
6、删除默认配置 (否则添加ldap用户时会报错)
[root@gerrit]#rm /etc/openldap/slapd.d/* -rf
7、设置目录权限
[root@gerrit]#chown -R ldap:ldap /etc/openldap/ [root@gerrit]#chown -R ldap:ldap /var/lib/ldap
8、测试并生成配置文件
[root@gerrit]#slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d 5956d35c bdb_db_open: database "dc=yangchao,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2). 5956d35c backend_startup_one (type=bdb, suffix="dc=yangchao,dc=com"): bi_db_open failed! (2) slap_startup failed (test would succeed using the -u switch) 如出现此报错请先启动slapd [root@gerrit]#service slapd start /var/lib/ldap/__db.004 is not owned by "ldap" [警告] /var/lib/ldap/alock is not owned by "ldap" [警告] /var/lib/ldap/__db.005 is not owned by "ldap" [警告] /var/lib/ldap/__db.002 is not owned by "ldap" [警告] /var/lib/ldap/__db.001 is not owned by "ldap" [警告] /var/lib/ldap/__db.006 is not owned by "ldap" [警告] /var/lib/ldap/__db.003 is not owned by "ldap" [警告] 正在启动 slapd: [失败] 如出现此报错再次设置目录权限 然后继续测试并生成配置文件 [root@gerrit]#slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d config file testing succeeded
9、创建账号以备client登陆测试
[root@gerrit]#useradd ldapuser [root@gerrit]#echo 'ldapuser' | passwd --stdin ldapuser
至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。
10、安装migrationtools工具
[root@gerrit]#yum install migrationtools -y
配置migrationtools
[root@gerrit]#cd /usr/share/migrationtools/ 修改 migrate_common.ph [root@gerrit]#vimmigrate_common.ph 搜索”dc=”,值改为与slapd.conf一致内容 # Default DNS domain $DEFAULT_MAIL_DOMAIN = "yc.com"; # Default base $DEFAULT_BASE = "dc=yc,dc=com";
下面利用pl脚本将/etc/passwd 和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下
[root@gerrit]#./migrate_base.pl > /tmp/base.ldif [root@gerrit]#cat /etc/passwd|grep ldapuser > ./passwd [root@gerrit]#./migrate_passwd.pl ./passwd > /tmp/passwd.ldif [root@gerrit]#cat /etc/group|grep ldapuser > ./group [root@gerrit]#./migrate_group.pl ./group > /tmp/group.ldif
导入LDAP 需要输入管理员密码
[root@gerrit]#ldapadd -x -D "cn=Manager,dc=yangchao,dc=com" -W -f /tmp/base.ldif [root@gerrit]#ldapadd -x -D "cn=Manager,dc=yangchao,dc=com" -W -f /tmp/group.ldif [root@gerrit]#ldapadd -x -D "cn=Manager,dc=yangchao,dc=com" -W -f /tmp/passwd.ldif
至此LDAP搭建完成
安装git
[root@gerrit]#yum install git -y
配置git:
①:新建组和用户 [root@gerrit]#useradd git [root@gerrit]#usermod -s /sbin/nologin git (禁止用户登录服务器) ②:创建git服务器工作空间: [root@gerrit]#mkdir -p /home/git/repo ③:更改权限git文件和目录权限: [root@gerrit]#chown -R git.git
安装gerrit
上传gerrit包到服务器
然后开始安装 :java -jar gerrit-2.8.1.war init -d gerrit(安装目录)
安装gerrit过程会有几个问题,例如:
•Git代码库的位置 [git] (git库路径) •导入现有代码库 [Y/n] (N) •数据库服务器类型 [H2/?] (默认) •身份验证方法 [OPENID/?] (ldap) •SMTP服务器主机名 [localhost] (默认) •SMTP服务器端口 [(default)] (默认) •SMTP加密 [NONE/?] (默认) •SMTP用户名 (默认) •以何种身份运行 [you] (默认) •Java运行时 [/path/to/jvm] (默认) •将gerrit.war复制到/path/to/location/bin/gerrit.war [Y/n] (默认) •监听地址 [*] (默认) •监听端口 [29418] (默认) •下载并安装Bouncy Castle[Y/n] (N) •位于HTTP反向代理之后 [y/N] (默认) •使用SSL [y/N] (默认) •监听地址 [*] (默认) •监听端口 [8080] (默认)
安装完成后 还可对配置文件进行修改
[root@gerrit]#vim /gerrit/etc/gerrit.conf [gerrit] basePath = /home/gir/repo canonicalWebUrl = http://192.168.0.104:8080/ [database] type = h2 database = /root/gerrit/db/ReviewDB [index] type = LUCENE [auth] type = LDAP [ldap] server = ldap://192.168.0.104 accountFullName = accountBase = dc=test,dc=com groupBase = dc=test,dc=com [receive] enableSignedPush = false [sendemail] enable = true smtpServer = smtp.ym.163.com smtpServerPort = 25 smtpUser = test@163.com smtpPass = password from = test@163.com [container] user = root javaHome = /usr/java/jdk1.7.0_79/jre [sshd] listenAddress = *:29418 [httpd] listenUrl = http://*:8080/ [cache] directory = cache
然后重启gerrit服务,就可进行访问:http://服务器IP:8080
请注意首次登录gerrit的用户会被认为 超级管理员