最近一直在做运维自动化监控项目,由于需要版本控制,所以搭建了个svn,同时很多群有都有关于svn的需要,而且他们在进行搭建svn的时候,网上的很多文章都是没有经过验证或者摘抄的,导致很多人都不能完整的完成svn的服务端的搭建,所以我趁闲着的时候编写了个脚本,自动化的安装svn服务端,方便大家。
一、测试环境
在rhel 5.4与centos5.5系统里均测试成功
二、脚本内容
- #!/bin/bash
- dir='/svndata' ##svn的目录
- name='puppet' ##svn的资源库名称
- user='test' ##svn验证登陆的用户名
- passwd='test' ##svn验证登陆的密码
- yum -y install httpd httpd-devel subversion mod_dav_svn expect
- mkdir -p $dir
- cd $dir/
- svnadmin create $name
- chown -R apache:apache $name
- cat >/etc/httpd/conf.d/subversion.conf<<EOF
- LoadModule dav_svn_module modules/mod_dav_svn.so
- LoadModule authz_svn_module modules/mod_authz_svn.so
- <Location /svn>
- DAV svn
- SVNListParentPath on
- SVNPath "$dir/$name"
- AuthType Basic
- AuthName "Subversion repository"
- AuthUserFile "$dir/$name/conf/authfile"
- Require valid-user
- SVNAutoversioning on
- ModMimeUsePathInfo on
- </Location>
- EOF
- echo "
- [groups]
- admin = test
- [admin:/]
- @admin = rw
- [/]
- * = r
- [$name:/]
- test = rw">>$dir/$name/conf/authz
- echo '#!/usr/bin/expect
- spawn /usr/bin/htpasswd -c '$dir'/'$name'/conf/authfile test
- expect "New password:"
- send "'$passwd'\n"
- expect "Re-type new password:"
- send "'$passwd'\n"
- interact'>/tmp/htpasswd.sh
- /usr/bin/expect /tmp/htpasswd.sh
- chown apache:apache $dir/$name/conf/authfile
- echo "$user = $passwd">>$dir/$name/conf/passwd
- svn import $dir/$name/ file://$dir/$name -m "Initial repository"
- sed -i 's/# anon-access = read/anon-access = none/g' $dir/$name/conf/svnserve.conf
- sed -i 's/# auth-access = write/auth-access = write/g' $dir/$name/conf/svnserve.conf
- sed -i 's/# password-db = passwd/password-db = \'$dir'\/'$name'\/conf\/passwd/g' $dir/$name/conf/svnserve.conf
- sed -i 's/# authzauthz-db = authz/authz-db = \'$dir'\/'$name'\/conf\/authz/g' $dir/$name/conf/svnserve.conf
- sed -i 's/# realm = My First Repository/realm = puppt Repository/g' $dir/$name/conf/svnserve.conf
- /etc/init.d/httpd restart
- svnserve -d -r $dir/$name/
三、运行方式
直接给这个脚本755权限,然后sh 脚本名称,之后就自动的安装svn服务端了,对于svn客户端的话,自己如果想在win里使用,那么下载TortoiseSVN,具体如何使用这类就不介绍了,大家可以参照http://www.cnblogs.com/blsong/archive/2010/09/02/1816124.html来学习。
完成后你可以再http://ip/svn里输入你的验证的用户与密码,就可以登录了
如果大家还有什么疑问的话,可以再下面留言,我会及时的回复给大家。
脚本可以再附件里下载