svn高可用叢集搭建

來源:互聯網
上載者:User

標籤:linux   svn   heartbeat   

1.環境準備(以下是我虛擬機器設定):

 

伺服器一:192.168.227.145(RIP) 系統centos 6.5

伺服器二:192.168.227.146(RIP) 系統centos 6.5

VIP:192.168.227.147

以上內容VIP為虛擬IP,RIP為伺服器真實IP,我們訪問svn伺服器是通過VIP去訪問的


2.搭建流程:

 

2.1 配置yum源

在/etc/yum.repos.d/CentOS-Base.repo加上aliyun的yum源

[aliyun-base]name=Aliyun-Base-CentOS-$releaseverbaseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/gpgcheck=0 [aliyun-epel]name=Aliyun-Epel-CentOS-$releaseverbaseurl=http://mirrors.aliyun.com/epel/6Server/x86_64/gpgcheck=0


2.2 配置ssh雙機信任(如果有則忽略這步)

192.168.217.145伺服器:

ssh-keygen -t rsa(一直按enter即可)

ssh-copy-id 192.168.217.146

 

192.168.217.146伺服器:

ssh-keygen -t rsa(一直按enter即可)

ssh-copy-id 192.168.217.145

 

2.3 安裝rsync

yum -y install rsync即可

 

2.4 安裝svn伺服器

我的svn repos目錄在/data/svn

兩台svn伺服器配置當然一樣

以一台舉例:

2.4.1.yum -y install subversion(安裝svn伺服器)

2.4.2.mkdir -pv /data/svn

2.4.3.svnadmin create /data/svn/mytest(建立svn repos目錄)

2.4.4.vim /etc/sysconfig/svnserve 檔案內容:

       OPTIONS="-r/data/svn"         類似於svnserve -d -r /data/svn

2.4.5.在當前svn來源目錄(我的例子是/data/svn/mytest) hooks加個post-commit檔案,一定要給該檔案執行許可權,它是svn提交後的鉤子,作用主要是提交後將svn目錄同步到另外一台伺服器


post-commit檔案內容:

#!/bin/bashREPOS="$1"REV="$2" CPATH=$(/usr/bin/dirname $(cd $(/usr/bin/dirname $0)&& pwd))"/"       #擷取svn目錄根目錄IPARR="192.168.217.145 192.168.217.146"     #svn叢集的兩個ipfor ip in $IPARR; do       if/sbin/ifconfig | /bin/grep -E "addr:${ip}" &>/dev/null; then              continue       fi       /bin/ping-c1 -w1 $ip &>/dev/null && /usr/bin/rsync -aP $CPATH $ip:$CPATHdone exit 0


2.4.6.在svn來源目錄下再加個recovery.sh(該指令碼作用是匹配當前伺服器和另外一台伺服器的版本號碼,如果當前伺服器版本號碼老於另外一台伺服器,則會主動將另外一台伺服器的代碼同步過來)主svn伺服器宕機之後恢複好之後可以使用


該檔案路徑是/data/svn/mytest/recovery.sh

#!/bin/sh CPATH=$(cd $(/usr/bin/dirname $0) &&pwd)"/"     #擷取svn目錄根目錄IPARR="192.168.217.145 192.168.217.146"     #svn叢集的兩個ip for ip in $IPARR; do       if /sbin/ifconfig| /bin/grep -E "addr:${ip}" &>/dev/null; then              continue       fi              if/bin/ping -c1 -w1 $ip &>/dev/null; then                     ssh_command="/usr/bin/svnlook youngest $CPATH"                     me_repos=$($ssh_command)                     ip_repos=$(/usr/bin/ssh $ip $ssh_command)                     if[ $me_repos -lt $ip_repos ]; then    #如果本機版本號碼小於對方版本號碼則要從對方伺服器同步                            /usr/bin/rsync -aP $ip:$CPATH $CPATH                     fi       fidoneexit 0

2.5 heartbeat搭建

 

在開始搭建之前

修改/etc/hosts加上兩行(兩台伺服器一致)

192.168.217.145 primary

192.168.217.146 backup

再把對應145(hostname primary), 146(hostname backup)

2.5.1. yum -y install heartbeat(兩台伺服器一致)

2.5.2.在/etc/ha.d目錄下建立3個檔案ha.cf, haresources, authkeys


ha.cf檔案(192.168.217.145)

logfacility   local0keepalive 1deadtime 30    #確認節點的宕機時間warntime 10initdead 60       #從一個節點切到另一個節點的時間udpport     694ucast eth0 192.168.217.146auto_failback onnode    primarynode    backupping 192.168.217.1


ha.cf檔案(192.168.217.146)

logfacility   local0keepalive 1deadtime 30warntime 10initdead 60udpport     694ucast eth1 192.168.217.145auto_failback onnode    primarynode    backupping 192.168.217.1


haresources檔案(兩台伺服器一致)

primary                    192.168.217.147/24svnserve


authkeys檔案(兩台伺服器一致)

auth 33 md5 Hellotomtop!


3.兩台機器service heartbeat start

 

 

至此svn叢集架構完畢


本文出自 “風之韻” 部落格,請務必保留此出處http://chinalx1.blog.51cto.com/2334265/1834648

svn高可用叢集搭建

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.