[Gerrit服务器集群搭建(一)]初识Gerrit代码审查系统

一、写在前面

公司安卓部门在扩张,尤其是我们这一拨新人进来后,本来负载就很重的Gerrit服务器更加吃不消了。前段时间,我有幸全程参与搭建了Gerrit服务器集群,在这里也将搭建过程总结记录下来,给自己也给他人做一个参考,有误或者有更好的建议都期待指教~

二、Gerrit服务器简介

简言之,就是基于Git引入的强制代码审核机制,原来是git push->Git库,现在则变成了git push->Gerrit(代码管理者审核通过)->Git库。当然这是个不严谨的描述,较为详细的介绍请参见http://www.worldhello.net/2010/11/10/2059.html

三、安装Gerrit

在探索用什么样的方案搭建服务器集群前,我们还是需要先熟悉如何搭建一个Gerrit服务器。关于这方面网上资料挺多的,这里总结了用PostgreSQL数据库+LDAP认证方式的搭建配置。

LDAP是一种轻量目录访问协议,可以近似视为一个数据库,百科告诉我它与一般数据库的区别在于,它的目标是快速响应和大容量查询并且提供多目录服务器的信息复制功能。嗯所以MIS 部门用这个来存储全公司员工的账号密码,对我们而言,只需要在Gerrit的认证部分配置好LDAP服务器,大家就可以免去注册,直接用自己的账号密码登陆了。

Gerrit初始化时支持三种数据库选择,分别是H2、MySQL和PostgreSQL。选择PostgreSQL数据库,主要是为了便于多服务器间实时共享数据库数据,MySQL也可以做到,至于为什么需要实时共享数据库,后续会进一步说明。

1、安装前准备

(1)git安装

sudo apt-get install git-core

(2)java安装

sudo apt-get install openjdk-7-jdk

(3)数据库安装+初始化(仅需要在Master上完成)

apt-get install postgresql-9.4

postgresql在安装后会默认创建用户,名为postgres。第一次登陆时软件会自动给分配一个md5加密的密码,所以虽然第一次登陆不需要输入密码,也需要修改用户postgres的密码,否则在下次登陆这个用户时会因为密码错误失败的(如果遇到这个情况可以通过修改配置文件pg_hba.conf解决)。具体流程如下:

#登陆默认用户
    su postgres
#进入数据库操作界面
    psql
#修改默认用户密码
    alter user postgres with password ‘新密码‘;
#创建新角色,这里命名为gerrituser,并授予创建db、role、user和登录的权限,登陆密码为777777
    create role gerrituser createdb createrole createuser login password ‘777777‘;
#退出当前用户
    \q
#登陆新用户数据库
    psql -U git -h localhost -d postgres
#新建database,这里命名为gerritdb
    create database gerritdb;

2、gerrit安装+详细配置

(1)gerrit安装

java -jar gerrit-2.9.4.war init -d review_site

(2)gerrit配置文档

在gerrit初始化完成后,会在网站目录下的etc文件夹中生成gerrit.config文件,记录当前配置信息。此时文件内容如下:

[gerrit]
basePath = git            #制定Git库存放位置,此时完整路径是Gerrit_Site下的子目录git。
canonicalWebUrl = http://localhost:8080/
[database]
type = postgresql               #下面填写刚刚创建好的数据库信息,注意密码不会显式呈现在这个配置文件。
database = gerritdb
hostname = localhost
username = gerrituser
[index]
type = LUCENE
[auth]
type = LDAP
[ldap]
server = ldap://*         #LDAP认证方式,这里配置涉及敏感信息,省略。
[sendemail]
smtpServer = localhost
[container]
user =XX                  #你的电脑主机名
javaHome = /usr/lib/jvm/jdk1.8.0_31/jre
[sshd]
listenAddress = *:29418      #通过ssh协议下载时监听的端口号,默认为29418
[httpd]
listenUrl = http://*:8080/      #Gerrit服务器Web界面监听的端口
[cache]
directory = cache

(3)如果需要访问远程数据库,需要修改的部分:

——对于Master(这里指创建数据库的主机)

a.修改/etc/postgresql/9.4/main/postgresql.conf中

原内容:#listen_addresses = ‘localhost‘  修改后(去掉#注释符):listen_addresses = ‘*‘           #监听来自所有ip的访问数据库请求

b.修改/etc/postgresql/9.4/main/pg_hba.conf(hba=host-based authentication)

# IPv4 local connections:
host all all 127.0.0.1/32 md5
host all all 10.64.58.0/24 md5 #新增内容,可以新增若干ip段,表示允许该网段的主机连接与使用数据库

——对于Slaves(这里指有访问需求的主机)

注意需要通过交互界面初始化,而不是直接改config文件,因为过程中会要求输入该database的密码,这里填远程主机对应数据库的密码。

[database]
   type = jdbc                        #Gerrit服务器还提供了接口访问数据库,人性化,赞~
   database = gerritdb                       #注意与远程主机gerrit的database名称一致
   hostname = localhost                      #这里需要改为远程主机的ip
   username = gerrituser                     #注意与远程主机管理该database的用户名一致
   url = jdbc:postgresql://Master的IP地址:5432/gerritdb #jdbc的url格式,这里ip指远程主机的ip,port为PostgreSQL用的port,默认值为5432
   driver = org.postgresql.Drive
时间: 2024-10-11 17:54:12

[Gerrit服务器集群搭建(一)]初识Gerrit代码审查系统的相关文章

[Gerrit服务器集群搭建(三)] 服务器搭建问题小结

一.写在前面 这一篇是对搭建Gerrit集群环境时遇到的问题及解决方案的小结.不谈细节,我们搭建这个集群需要达到的最直接效果是:用户访问且仅访问一个Gerrit服务器地址,集群内任意服务器都有能力响应.这里说的“有能力”,由SSH传输协议展开. 二.集群服务器共享用户公钥 用户如果需要从Gerrit服务器上通过ssh协议下载数据,首先会在服务器上增加自己的公钥,从而让服务器在用户请求通信时向用户发送“质询”,验证用户身份.(更详细的说明在这:http://www.cnblogs.com/wina

nginx+apache+php+mysql服务器集群搭建

nginx+apache+php+mysql服务器集群搭建 由于需要搭建了一个基本的服务器集群.具体的配置方案先不说了,到有时间的时候再介绍.下面介绍下整个方案的优点. 我总共准备了四台阿里云的主机,架设分别是A,B1,B2,C,A在集群的最前面,B1和B2在A的后面,C在最后面.A主要用的nginx,用nginx做反向代理的功能实在是强大.nginx把来自80的http请求都转发到B1和B2上,B1和B2主要是两台apache,用于php解析.B1和B2来连接C上的mysql.A上的nginx

服务器集群搭建(Apache+Jboss)

开发了一年的App日活日渐增多,这当然是一件好事.可惜服务器端的压力则明显增大,解决服务器性能的问题迫在眉睫.优化了一些代码逻辑后决定捡起之前使用过的集群,本片文章这题及为了记录在配置集群中碰到的问题和解决方式. 之前做过的集群方式是,使用Apache做负载均衡,这里依旧使用Apache.然而由于公司服务器使用的Jboss5.0 (GA), 之前没有接触过Jboss故先还是从熟悉的入手 第一步Apache + Tomcat6.0 集群搭建(为了验证Apache配置正确) 参考:http://ww

Web服务器集群搭建

前言:本文记述了搭建一个小型web服务器集群的过程,由于篇幅所限,系统.软件的安装和基本配置我这里就省略了,只记叙关键配置和脚本内容.假如各位朋友想了解各软件详细配置建议查阅官方文档. 一 需求分析: 1.整体需求:搭建一个高可用的网站服务器集群,能承受高并发请求,能抵御一般的网络攻击,任何一台服务器的退服不影响整个集群的运作,并且能对各服务器的运行情况作出实时监控. 2.详细需求分析: 根据需求,计划根据以下拓扑搭建运行环境: 二 详细功能描述: 1.前端服务器采用nginx实现反向代理和负载

hadoop伪分布式集群搭建与安装(ubuntu系统)

1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip; 2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链接成功了: 3:修改主机的名称vi /etc/hostname和域名和主机映射对应的关系 vi /etc/hosts,改过之后即生效,自己可以ping一下,我这里ip对应master,比如ping master之后发现可以ping通即可: 4:修改过主机名称和主机名与ip对应的关系之后:开始上传jd

Redis集群搭建完整流程演示

Redis集群搭建完整流程演示 前言 ? 前面讲述了有关redis的编译安装流程以及其配置优化的部分内容,本文旨在本地模拟redis服务器集群搭建的流程演示. Redis集群的作用是什么? ? 在实验部署开始前,我们需要明白为什么需要搭建Redis集群,其解决了什么样的问题?又有哪些优势.我们可以从单一的Redis服务器来探究这个问题. 单一Redis服务器存在的问题 ? 如果部署过MySQL主从复制读写分离以及MHA高可用的话,这里就非常容易想到单一Redis服务器所存在的问题,主要有以下几点

hadoop 集群搭建-suse linux 11

好久都没写了啊.感觉自己都不像是一个搞技术都了.来个存货吧! hadoop 集群搭建 3台机器 suse 系统 规划 IP 主机名 hostname hadoop角色10.96.91.93 namenode93 NameNode.SecondaryNameNode .ResourceManage. DataNode .NodeManager10.96.91.129 datanode129 DataNode NodeManager10.96.91.130 datanode130 DataNode

keepalived+nginx+tomcat搭建高性能web服务器集群

使用keepalived+nginx+tomcat搭建高性能web服务器集群,系统采用centos6.9,前端用nginx做反向代理实现负载均衡,同时结合keepalived对nginx实现高可用,后端使用两台tomcat做动态jsp解析,实现了动静分离. 搭建环境 准备四台服务器 vip: 192.168.75.130master: 192.168.75.131 (安装nginx做反向代理实现负载匀衡,结合keepalived实现高可用)backup: 192.168.75.132 (同上)w

Zookeeper服务器集群的搭建与操作

ZooKeeper 作用:Zookeeper 可以用来保证数据在zk集群之间的数据的事务性一致(原子操作). 介绍:Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务.  它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. 特性:简单的.富有表现力的.具有高可用性.采用松耦合交互方式.是一个资源库. 如何搭建ZooKeeper服务器集群 2.1 ZooKeeper服务器集群规模不小于3个节点,要求各服务器之间