今天做svn备份恢复测试,借着搭建恢复环境正好学习记录一下相应的安装配置和恢复测试操作。
首先了解一下SVN:
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS转移到Subversion。svn服务器有2种运行方式:独立服务器和借助apache运行。
这里我搭建的就是借助apache运行的svn服务器。
系统环境:CentOS release 6.5 (Final)
使用SSL加密访问 使用LDAP做授权认证
安装前临时关闭selinux和iptables
#setenforce 0
#/etc/init.d/iptables stop
1.安装apache和svn以及相应模块和相应的开发包:
#yum install subversion httpd mod_dav_svn openldap-devel openssl-devel mod_ssl expat-devel libxml2-devel
2.查看apache模块的情况:
#httpd -M |grep svn
Syntax OK
dav_svn_module (shared)
authz_svn_module (shared) ##出现这两个模块说明apache整合SVN成功。
#httpd -M |grep ldap
Syntax OK
ldap_module (shared)
authnz_ldap_module (shared) ##因为使用的是LDAP认证,所以出现上面LDAP相关的模块说明就可以使用LDAP了。
在apache配置文件末行加入一下优化配置:
LDAPSharedCacheSize 200000
LDAPCacheEntries 1024
LDAPCacheTTL 600
LDAPOpCacheEntries 1024
LDAPOpCacheTTL 600
3.启用SSL模块功能和生成证书:
#httpd -M |grep ssl
Syntax OK
ssl_module (shared) ##出现这个说明正常启用SSL模块功能,没有可能是mod_ssl没有安装。
#openssl req -new -x509 -nodes -out server.crt -keyout server.key ##生成证书和私钥
然后修改/etc/httpd/conf.d/下面的ssl.conf指定证书和私钥。
4.访问测试apache:
#/etc/init.d/httpd restart
#netstat -anptl |grep 443 ##出现443端口服务器启动正常
通过地址测试: https://ipaddr
5.定义apache访问SVN配置:
#mkdir /etc/httpd/conf/svnconf.d/ ##自己定义的SVN配置目录
#vim httpd.conf
添加内容如下
Include Include conf/svnconf.d/*.conf
#cd svnconf.d
#vim test.conf
<Location /test>
DAV svn ##开启SVN
SVNPath /var/www/svn/repos/test ##版本库路径
AuthType Basic
AuthName "TestSVN Repository"
Require valid-user
AuthBasicProvider ldap file ##先使用LDAP认证
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://IP地址:3268/DC=test,DC=local?sAMAccountName?sub?(objectClass=*)" NONE
AuthLDAPBindDN [email protected] ##LDAP认证账户
AuthLDAPBindPassword password
AuthUserFile /var/www/svn/conf/passwd ##使用apache htpasswd用户认证文件
AuthzSVNAccessFile /var/www/svn/conf/test.acc ##访问SVN库的权限配置
SSLRequireSSL
</Location>
6.配置SVN server:
#svnadmin create test ##创建测试用的版本库test
#chown -R apache.apahce test ## 更改库的属主属组为apache用户
#mkdir -p /var/www/svn/conf
#cd /var/www/svn/conf
#vim test.acc
[groups]
g_admin = test ##因为是用的LDAP认证所以这里的test是AD账号
[/]
@g_admin = rw
在测试访问之前重启一下apache服务
7.做备份恢复测试:
#svnadmin create svnrestore
#svnadmin load /var/www/svn/repos/svnrestore <svnbackup.dump ##备份库使用svnadmin dump
将备份的库的svn配置文件拷贝到svnconf.d目录
重启apache服务访问测试就OK了~