VisualSVN 迁移至Linux SVN+apache+ssl集成ldap
svn
一、VisualSVN 迁移至Linux SVN
1.1首先找到Repositories (存放项目目录)

1.2通过cmd命令行导出
!!! 特别提示,一定要先清空SVN的权限,否则导出的时候权限会乱

svnadmin dump项目目录\项目名称>存放目录\名称.dump
生成.dump文件

1.3搭建SVN
具体搭建文档请前往:SVN服务实战应用指南
提示:我们不需要修改SVN项目的配置文件,因为认证是通过apache配置的文件
1.4导入仓库
首先我们将*.dump文件上传至服务器创建SVN项目(名字最好和原来的相同)[root@tomcat ~]# svnadmin create /home/svndata/smscenter[root@tomcat ~]# cd /home/svndata/#进入创建SVN项目的上一级目录导入数据[root@tomcat svndata]# svnadmin load smscenter <smscenter.dump!!!smscenter.dump文件必须和smscenter创建的项目目录在同一级
只要不保存就是成功了

1.5设置权限
我们需要修改data目录的权限[root@tomcat svndata]# chown -R apache.root smscenter
echo "以上就是我们的迁移,下面的步骤我们可以用自己创建的测试项目库进行操作"
二、 svn+apache+ssl配置
2.1安装apache
2017-11-01更这里建议使用yum安装httpdyum install -y httpd可以解决一些依赖问题,因为编译会有很多模块无法加入!!!!****************************************************************************下载Apache源码到http://httpd.apache.org/下载最新稳定版的源码,现在最新稳定版是2.2.21。[root@tomcat ~]# wget http://apache.deathculture.net//httpd/httpd-2.2.21.tar.gz[root@tomcat ~]# tar xvfz httpd-2.2.21.tar.gz[root@tomcat httpd-2.2.21]#./configure--prefix=/usr/local/httpd--enable-so--enable-dav=shared--enable-dav-fs=shared--enable-dav-lock=shared--enable-ssl=shared[root@tomcat httpd-2.2.21]# make && make install
验证apache
[root@tomcat svndata]#/usr/local/httpd/bin/apachectl -VServer version:Apache/2.2.34(Unix)Server built:Oct25201719:28:35Server's Module Magic Number: 20051115:43Server loaded: APR 1.5.2, APR-Util 1.5.4Compiled using: APR 1.5.2, APR-Util 1.5.4Architecture: 64-bitServer MPM: Preforkthreaded: noforked: yes (variable process count)Server compiled with....-D APACHE_MPM_DIR="server/mpm/prefork"-D APR_HAS_SENDFILE-D APR_HAS_MMAP-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)-D APR_USE_SYSVSEM_SERIALIZE-D APR_USE_PTHREAD_SERIALIZE-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT-D APR_HAS_OTHER_CHILD-D AP_HAVE_RELIABLE_PIPED_LOGS-D DYNAMIC_MODULE_LIMIT=128-D HTTPD_ROOT="/usr/local/httpd"-D SUEXEC_BIN="/usr/local/httpd/bin/suexec"-D DEFAULT_PIDLOG="logs/httpd.pid"-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"-D DEFAULT_LOCKFILE="logs/accept.lock"-D DEFAULT_ERRORLOG="logs/error_log"-D AP_TYPES_CONFIG_FILE="conf/mime.types"-D SERVER_CONFIG_FILE="conf/httpd.conf"
2.2.安装mod_dav_svn mod_ssl 模块
mod_dav_svn是apache服务器访问svn的一个模块。通过yum安装:
mod_ssl 是apache配置ssl访问的
yum install mod_dav_svn -y安装成功后,会有mod_dav_svn.so和mod_authz_svn.so两个文件。find /-name mod_dav_svn.so/usr/lib64/httpd/modules/mod_dav_svn.sofind /-name mod_authz_svn.so/usr/lib64/httpd/modules/mod_authz_svn.soyum install -y mod_ssl安装后会在/etc/httpd/conf.d/生成ssl.conf我们复制LoadModule ssl_module modules/mod_ssl.so 到我们的subversion.conf提示:我们yum安装的httpd模块都在/etc/httpd/modules下面,我们要引用就要把模块复制到httpd的下面
2.3配置apche
[root@ldap ~]# grep "^[a-zA-Z]"/etc/httpd/conf/httpd.confInclude conf.d/*.confUser apacheGroup apacheServerName localhost##这是需要修改的地方,请仔细阅读配置说明!!!!!!!!!!!!!!!!!!!!!@@@@
配置说明:
1.修改apache启动用户
User apache
Group apache
2.设置一个ServerName,否则启动会报警
ServerName localhost
要确保apache安装目录有这3个文件,没有就find搜索一下,否则上一步配置文件会报错

2.4 通过openssl生成证书
1.生成根证书的私钥
$ mkdir /etc/httpd/ssl/ && openssl genrsa -out /etc/httpd/ssl/svn.key
2.利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好
$ openssl req -new -key /etc/httpd/ssl/svn.key -out /etc/httpd/ssl/svn.csr
3.自签名的方式签发我们之前的申请的证书,生成的证书为ca.crt。
openssl x509 -req -days 3650 -in /etc/httpd/ssl/svn.csr -signkey /etc/httpd/ssl/svn.key -out /etc/httpd/ssl/svn.crt
!然后我们将svn.crt和svn.key拷贝到并创建/etc/httpd/ssl/就可以
svn整合apache
yum安装路径一般都在/etc/httpd下,编译安装看你们的编译设置的路径,推荐httpd安装[root@tomcat svndata]# vim /etc/httpd/conf.d/subversion.conf (目录是自己生成的)LoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.soLoadModule ssl_module modules/mod_ssl.soListen443#监听端口<VirtualHost*:443>SSLEngineOn#开启sslSSLCertificateFile"/etc/httpd/ssl/svn.crt"#ssl文件路径SSLCertificateKeyFile"/etc/httpd/ssl/svn.key"#ssl文件路径<Location/svn/>#是在url或者svn客户端上指定的访问路径DAV svn #声明svSVNParentPath/home/svndata #用来表示共同的父目录,所有不同的版本库都是存放在此目录下AuthTypeBasic#apache的简单认证方式AuthName"#######boxuegu - svn##########"AuthUserFile/home/svnpasswd/httpdpasswd #密码文件存放位置AuthzSVNAccessFile/home/svnpasswd/auth.conf #指定保存路径中的版本库访问策略文件SSLRequireSSLRequire valid-user</Location></VirtualHost>
2.5 创建svn用户
如果不使用https加密验证正常用户是在svn项目里面配置,但是我们是通过ssl进行用户控制,我们不需要在svn版本里面配置配置文件
通过创建下面的用户来登录svn并控制权限[root@tomcat ~]# htpasswd -c /home/svnpasswd/httpdpasswd jenkins[root@tomcat ~]# htpasswd /home/svnpasswd/httpdpasswd test通过htpasswd创建的用户,密码都是加密的[root@tomcat svnpasswd]# cat httpdpasswdjenkins:$apr1$Emt9L7jJ$mKjTMxfkpproCQXX9JF.Y1test:$apr1$QL1ZsBVc$6krpnqKQf4SI/RfT9nGyN/-c 表示会自动生成这个文件,第一次操作可以执行以后就不需要#删除用户htpasswd -D passwd user#修改用户密码htpasswd passwd user
2.6创建并配置svn权限
[root@tomcat svnpasswd]# vim /svnpasswd/auth.conf 手动创建[groups]admin=jenkinsabcdocker=test,jenkins[test:/]@abcdocker=rwjenkins=rwr代表读w代表写@是用户组test是项目例如:http://127.0.0.1/svn/test 代表svn下面的test,这个svn是apache的location定义特别提示#########################################如果auth.conf这个文件配置的用户有错误,会造成用户打开web界面出现权限拒绝或者无法登陆的情况!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!################################################################################
2.7重启svn及apache
[root@tomcat ~]# ps -ef|grep svnroot 107848674016:27 pts/000:00:00 grep --color=auto svnroot 2271510Oct25?00:00:00 svnserve -d -r /home/svndata/[root@tomcat ~]# kill 10784[root@tomcat ~]# svnserve -d -r /home/svndata/[root@tomcat ~]#/etc/init.d/httpd restart
2.8访问验证
因为我们的ssl证书没有认可,会提示不安全,我们直接访问就可以了

输入我们授权的svn即可

成功如下图:

三、svn集成LDAP配置
待更新
配置待验证
Listen443<VirtualHost*:443>SSLEngineOnSSLCertificateFile"/tmp/svn.crt"SSLCertificateKeyFile"/tmp/svn.key"<Location/svn/>DAV svnSVNParentPath/home/svndataSVNListParentPath onAuthTypeBasicAuthName"#######boxuegu - svn##########"AuthUserFile/home/svnpasswd/httpdpasswdAuthzSVNAccessFile/home/svnpasswd/auth.confSSLRequireSSLRequire valid-userAuthBasicAuthoritative onAuthBasicProvider ldapAuthzLDAPAuthoritative onAuthLDAPURL"ldap://172.16.1.38:389/dc=itcast,dc=cn?userName?sub?(objectCategory=itcastPerson)"AuthLDAPBindDN"cn=Manager,dc=itcast,dc=cn"AuthLDAPBindPassword"123456"</Location></VirtualHost>

浙公网安备 33010602011771号