环境准备:

系统

配置

IP

Centos7.1

1核2G+60GB硬盘

10.10.28.204

 

 

 

1、安装



sudo yum install subversion



查看版本



svnserve –-version



lvs搭建集群_lvs搭建集群

2、创建版本库

(1)修改svn默认数据根目录

默认以/var/svn作为数据根目录,通过/etc/sysconfig/svnserve修改默认位置

lvs搭建集群_运维_02

修改后

lvs搭建集群_版本库_03

(2)创建版本库



[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir svn
[root@localhost opt]# cd svn
[root@localhost svn]# mkdir cmop
[root@localhost svn]# svnadmin create /opt/svn/cmop/



cmop是我版本库的名称,可以随意命名。

lvs搭建集群_运维_04

由上图,可以发现已经生成了版本库文件。

3、配置SVN信息

切换到目录:cd /opt/svn/cmop/conf 

(1)新增用户

vim passwd:

lvs搭建集群_开发工具_05

很明显,在[user]下面直接添加用户名密码即可:admin=admin (格式对应:用户名 = 密码)

(2)配置授权

vim authz:

lvs搭建集群_svn_06

[groups]配置用户组信息

[cmop:/]配置版本库中用户授权

 (3)编辑svnserve.conf:



[general]
anon-access = none            #控制非鉴权用户访问版本库的权限
auth-access = write           #控制鉴权用户访问版本库的权限
password-db = passwd          #指定用户名口令文件名
authz-db = authz              #指定权限配置文件名
realm = cmop                  #指定版本库的认证域,即在登录时提示的认证域名称



4、启动SVN



sudo systemctl start svnserve.service



检查服务是否启动成功



ps aux | grep svn



lvs搭建集群_开发工具_07

通过netstat可以看到SVN打开了3690端口

lvs搭建集群_lvs搭建集群_08

设置成开机启动



sudo systemctl enable svnserve.service



5、在本地测试连接SVN



svn://10.10.28.204/cmop



lvs搭建集群_开发工具_09

在弹出的身份验证框填写用户名密码即可成功访问版本库。

 

碰到的问题--连接时,提示“认证失败”

原因是在授权文件authz中的授权没有做好,以下是关于授权的相关知识



用户组格式:
[groups]
groupName=user1,user2,user3
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。

版本库目录格式:
[cmop:/]
[<版本库>:/项目/目录]
@<用户组名> = <权限>
<用户名> = <权限>
其中,方框号内部分可以有多种写法:
[/],表示根目录及以下,根目录是svnserve启动时指定的,我们指定为/opt/svn,[/]就是表示对全部版本库设置权限。
[repos:/] 表示对版本库repos设置权限;
[repos:/abc] 表示对版本库repos中的abc项目设置权限;
[repos:/abc/aaa] 表示对版本库repos中的abc项目的aaa目录设置权限;
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。
权限可以是w、r、wr和空,空表示没有任何权限。