svn是近年来使用最为广泛的版本管理软件。不过由于虽然后在用户认证使用等方法非常的便捷,不过如果对用户和权限能有一个web的管理界面,相信很多人还是乐意通过web界面去配置的。svn的后台管理软件非常多,如svn-web-admin、pysvnmanager以及今天要提到的if.svnadmin 。
iF.SVNAdmin 是一个基于 Web 的,用来管理 Subversion 的认证文件的项目。无需数据库支持,直接对 Subversion 的认证文件和用户认证文件进行设置,支持 LDAP,同时也可以用来创建和删除版本库,以及对版本库进行浏览。
目前最新的版本是1.6.2
wget http://jaist.dl.sourceforge.net/project/ifsvnadmin/svnadmin-1.6.2.zipunzip svnadmin-1.6.2.zip
在apache的conf.d中增加如下配置文件:
#vim svnadmin.conf<VirtualHost *:80> ServerAdmin admin@361way.com ServerName svnadmin.361way.com DocumentRoot "/var/www/html/svnadmin" <Directory "/var/www/html/svnadmin"> Order deny,allow Deny from all Allow from 192.168.10.0/24 </Directory></VirtualHost>
配置完成后,重载apache 并将刚刚解包的文件放到conf配置文件中指定的路径。通过svnadmin.361way.com防问,即可通过web方式配置安装。直接打开时,可能报如下错误:
Error: Could not copy configuration file template. Require write permission (777) to "data" folder and all containing files.#0 /var/www/svnadmin/index.php(20): include_once()#1 {main}
出现上面错误时,直接赋权限就OK了:
cd /var/www/svnadmin/chmod 777 data
如上图所示,通过配置相关项就可以了。如果使用的是ldap认证,刚将use view provider type和Group view provider type项换成ldap 。完成配置后,保存配置即可。
最终完成后的配置文件如下:
#vim svnadmin/data/config.ini[Common]FirstStart=0[Translation]Directory=./translations/[Engine:Providers]AuthenticationStatus=basicUserViewProviderType=ldapUserEditProviderType=GroupViewProviderType=svnauthfileGroupEditProviderType=svnauthfileAccessPathViewProviderType=svnauthfileAccessPathEditProviderType=svnauthfileRepositoryViewProviderType=svnclientRepositoryEditProviderType=svnclient[ACLManager]UserRoleAssignmentFile=./data/userroleassignments.ini[Subversion]SVNAuthFile=/etc/httpd/conf/svnauthz.conf[Repositories:svnclient]SVNParentPath=/data1/svnrootSvnExecutable=/usr/bin/svnSvnAdminExecutable=/usr/bin/svnadmin[Users:passwd]SVNUserFile=./test/passwd.cfg[Users:digest]SVNUserDigestFile=SVNDigestRealm=SVN Privat[Ldap]HostAddress=ldap://192.168.10.100:389/ProtocolVersion=3BindDN=cn=svnldap,dc=361way,dc=comBindPassword=W3HKf87u[Users:ldap]BaseDN=ou=users,domainname=361way.com,o=domains,dc=361way,dc=comSearchFilter=(|(&(objectClass=mailuser)(accountStatus=active))(cn=svnadmin))Attributes=sn[Groups:ldap]BaseDN=ou=groups,domainname=361way.com,o=domains,dc=361way,dc=comSearchFilter=(objectClass=groupOfUniqueNames)Attributes=cnGroupsToUserAttribute=uniqueMemberGroupsToUserAttributeValue=dn
不想通过web方式配置的,也可以直接在该文件中进行配置 。
默认安装完成后,只有一个管理员用户,想要再新增管理员用户,可以通过更改下面的配置文件完成。
cat svnadmin/data/userroleassignments.ini[admin]Administrator=[361way]Administrator=
这里定义了两个管理员用户,一个用户名是admin ,另一个是 361way 。
同其他运维工作要注意的一样,任何操作之前先要做好备份。在新版本的if.svnadmin安装完成后,我大意了,无意间在后台点了一个按钮,对所有用户的权限分配都初始化了(惨痛的教训,还好一周前有一个备份,并且研发变更的人数不大)。操作如下面所示:
最后提供一下该软件的官方主页。所有一切不能确定的操作,可以在测试环境随意操作,但在现网中不确定时,最好先看下官方文档确认后再操作。
联系客服