在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/新建倉庫名