在jenkins中只能通过http的方式获取svn的数据,所以需要配置svn的http访问方式
一、安装http服务端和mod_dav_svn插件
由于Subversion需要版本化的控制,因此标准的HTTP协议不能满足需求。要让Apache与Subversion协同工作,就要使用WebDAV(Web-based Distributed Authoring and Versiong)Web分布式创作和版本控制协议。 mod_dav_san模块就是作为Subversion与Apache之间的接口,通过它,Apache就可以访问版本库,并且可以让客户端也使用HTTP的扩展协议WebDAV/DeltaV进行访问。
yum install -y httpd mod_dav_svn
二、配置账号信息(在/home/svn/ProjectName/conf/中修改)
将默认的passwd文件改名,创建htpasswd格式的用户名密码文件accesspwd
htpasswd -cm accesspwd test(test为登陆用户)
-c是创建新文件,只有第一次创建账户密码时使用
-m是强制使用MD5加密密码(默认)
三、添加httpd配置文件
cd /etc/httpd/conf.d
touch svn.conf
配置文件如下:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /ProjectName>
DAV svn
SVNPath /home/svn/ProjectName/
AuthType Basic # 使用基本认证方式,即用户名、密码认证
AuthName "Subversion repos" # 在认证对话框中出现的提示信息
AuthUserFile /home/svn/ProjectName/conf/accesspwd # 指定存放用户账号密码的文件路径
AuthzSVNAccessFile /home/svn/ProjectName/conf/authz # 指定存放用户访问权限的文件路径
Require valid-user # 限定只有用户输入正确的用户名和密码后才能访问该标签所指向的路径
</Location>
注意:注释文件不能添加到配置文件中,否则apache无法启动
四、重启svn、http服务
ps -ef |grep svn
kill svn进程号
启动svn
svnserve -d -r /home/svn
systemctl restart httpd
--------------------------------------新增11/30---------------------------------------
如果需要在同一台服务器上建多个仓库
svnadmin create /home/svn/test2
同样的需要修改配置
配置http访问,
在/etc/httpd/conf.d/路径下新建一个test2.conf
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /新建仓库名> DAV svn SVNPath /home/svn/新建仓库名/ AuthType Basic AuthName "Subversion repos" AuthUserFile /home/svn/新建仓库名/conf/accesspwd AuthzSVNAccessFile /home/svn/新建仓库名/conf/authz Require valid-user </Location>
重启httpd
systemctl restart httpd
可能会遇到有关权限的问题,需要配置一下相应的目录权限
chown -R apache:apache /home/svn/新建仓库名
chmod -R 755 /home/svn/新建仓库名