您的位置:首页 > 运维架构 > Linux

centos下搭建SVN服务器 并且自动发布代码

2013-03-20 19:11 246 查看
1:安装,安装其实非常简单

#yum install subversion

测试是否安装成功

#svnserve --version

如果显示了版本信息则表示安装成功

2:配置

svn配置建立svn版本库目录可建多个:

新建一个版本库目录 名字为repos

#mkdir -p /opt/svndata/repos

建立svn版本库:

#svnadmin create /opt/svndata/repos

修改svn版本库配置文件版本库:

# vim /opt/svndata/repos/conf/svnserve.conf

内容修改为:

[general]

anon-access = none

auth-access = write

password-db = /opt/svn/conf/passwd.conf

authz-db = /opt/svn/conf/authz.conf

realm = repos

注重:对用户配置文件的修改立即生效,不必重启svn。

#vim /opt/svn/conf/passwd.conf

[users]

username = password

这里是配置用户名与密码

配置svn用户访问权限:

# vim /opt/svn/conf/authz.conf

注重:

* 权限配置文件中出现的用户名必须已在用户配置文件中定义。

* 对权限配置文件的修改立即生效,不必重启svn。

用户组格式:

[groups]

= ,

其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:

[<版本库>:/项目/目录]

@<用户组名> = <权限>

<用户名> = <权限>

其中,方框号内部分可以有多种写法:

[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svndata,[/]就是表示对全部版本库设置权限。

[repos:/] 表示对版本库repos设置权限

[repos2:/abc] 表示对版本库repos2中的abc项目设置权限

[repos2:/abc/aaa] 表示对版本库repos2中的abc项目的aaa目录设置权限

权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。

权限可以是w、r、wr和空,空表示没有任何权限。

示例:

[groups]

admin = alan

[/]

@admin = rw

[repos1:/abc/aaa]

king = rw

[repos2:/pass]

king =

svn 配置完毕。

启动svn建立启动svn的用户

# useradd svn

# passwd svn

根据提示,为用户svn设置密码

允许用户svn访问版本库:

# chown -R svn:svn /opt/svndata

启动svn

# su – svn -c ”svnserve -d -r /opt/svndata“

注意:有时候这个命令执行不成功是因为你直接复制造成的,把那两个双引号改为英文的双引号就行了

其中:

su – svn表示以用户svn的身份启动svn

-d表示以daemon方式(后台运行)运行

-r /opt/svndata指定根目录是/opt/svndata

好SVN已经启动了,你可以通过svn://ip地址/repos 这种方式来访问了

接下来就是如何将SVN中的代码同步到WEB根目录了

其实很简单,只要写个脚本定时checkout就行了

下面就来写这个脚本

#vim tongbu.sh

#!/bin/sh

while true

do

svn checkout svn://127.0.0.1/repos >/dev/null 2 >& 1

sleep 5

done

其中svn://127.0.0.1/repos就是你的SVN服务器地址与版本库

然后将这个SH文件放到你的WEB目录,比如/opt/www目录下

然后

#chmod +x tongbu.sh

#./tongbu.sh

这时候会让你输入SVN用户名密码,输入完成这个脚本就会每5秒钟同步一次,但是他还不是在后台运行,只要你退出 这个脚本就停止了

那么先ctrl+c停止,然后用

#nohup ./tongbu.sh &

让他去后台运行,这样就OK拉

另外一个要说的是,有时候发现你的SVN连不上,也许是因为端口被防火墙墙掉的缘故

SVN默认端口为3690 你可以去iptable里面将他开放
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: