運維大作戰之配置svn服務器

環境:CentOs6.1

查看是否安裝了svn工具:rpm -qa | grep subversion (查看版本:svnserve --version)
運維大作戰之配置svn服務器

(未安裝的可以用yum install subversion 安裝)
1、建立SVN的根目錄
mkdir -p /opt/svn/tshop/

2、建立一個產品倉庫
svnadmin create /opt/svn/tshop/
如果你們的研發中心有多個產品組,每個產品組可以建立一個SVN倉庫

運維大作戰之配置svn服務器
目錄用途說明:
hooks目錄:放置hook腳本文件的目錄
locks目錄:用來放置subversion的db鎖文件和db_logs鎖文件的目錄,用來追蹤存取文件庫的客戶端
format文件:是一個文本文件,裏面只放了一個整數,表示當前文件庫配置的版本號
conf目錄:是這個倉庫的配置文件(倉庫的用戶訪問賬號、權限等)

3、修改版本配置庫文件
vi /opt/svn/tshop/conf/svnserve.conf
anon-access = none # 注意這裏必須設置,否則所有用戶不用密碼就可以訪問
auth-access = write
password-db = passwd
authz-db = authz
realm = tshop
運維大作戰之配置svn服務器
對用戶配置文件的修改是立即生效的,不必重啓svn。

4、開始設置passwd用戶賬號信息
vi /opt/svn/tshop/conf/passwd
[users]
#harry = harryssecret
#sally = sallyssecret
###===========下面是我添加的用戶信息========#######
chenmingchang = 123456
svntest = 123456
運維大作戰之配置svn服務器

5、開始設置authz. 用戶訪問權限
vi /opt/svn/tshop/conf/authz
[groups]
devteam = chenmingchang, svntest #devteam組包括兩個用戶

[/]
chenmingchang = rw
svntest = r

  • =

[tshop:/tb2c]
@devteam = rw
svntest =

[tshop:/tb2b2c]
@devteam = rw
chenmingchang = r
運維大作戰之配置svn服務器
6、注意:

  • 權限配置文件中出現的用戶名必須已在用戶配置文件中定義。
  • 對權限配置文件的修改立即生效,不必重啓svn。
    用戶組格式:

[groups]
= ,
其中,1個用戶組可以包含1個或多個用戶,用戶間以逗號分隔。
版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<用戶組名> = <權限>
<用戶名> = <權限>

其中,方框號內部分可以有多種寫法:
[/],表示根目錄及以下,根目錄是svnserve啓動時指定的,我們指定爲/opt/svn/tshop,[/]就是表示對全部版本庫設置權限。
[tshop:/] 表示對版本庫tshop設置權限;
[tshop:/abc] 表示對版本庫tshop中的abc項目設置權限;
[tshop:/abc/aaa] 表示對版本庫tshop中的abc項目的aaa目錄設置權限;br/>權限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。
權限可以是w、r、wr和空,空表示沒有任何權限。
7、啓動svn:svnserve -d -r /opt/svn/tshop #默認的啓動端口號爲3690

8、檢查是否啓動:netstat -tunlp | grep svn (或ps –ef | grep svn)
運維大作戰之配置svn服務器

運維大作戰之配置svn服務器

9、將svn加入到開機啓動
編輯rc.local文件:vi /etc/rc.d/rc.local
加入並保存如下啓動命令:/usr/local/svn/bin/svnserve –d --listen-port 3690 -r /opt/svn/tshop

10、如果想停止svn,則使用如下命令:killall svnserve (或pkill svn)

11、如果想將svn作爲服務:
在/etc/rc.d/init.d/目錄下新建名爲svn的文件:
touch /etc/rc.d/init.d/svn
並設置權限爲755:chmod 755 /etc/rc.d/init.d/svn
編輯svn文件:vi /etc/rc.d/init.d/svn, 在裏面添加如下代碼:

#!/bin/bash
#build this file in /etc/rc.d/init.d/svn
#chmod 755 /etc/rc.d/init.d/svn
#centos下可以用如下命令管理svn: service svn start(restart/stop)
SVN_HOME=/opt/svn/tshop
if [ ! -f "/usr/local/svn/bin/svnserve" ]
then
echo "svnserver startup: cannot start"
exit
fi
case "$1" in
start)
echo "Starting svnserve..."
/usr/local/svn/bin/svnserve -d --listen-port 9999 -r $SVN_HOME
echo "Finished!"
;;
stop)
echo "Stoping svnserve..."
killall svnserve
echo "Finished!"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac

保存,之後便可以以service svn start(restart/stop)方式啓動SVN。

至此,svn服務器配置完畢。
下一篇將講解如何在客戶端上使用svn。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章