您的位置:首页 > 运维架构 > Apache

一键搭建CSVN(CollabNet Subversion Edge)服务器

2015-03-22 16:24 543 查看
首先说CSVN,其实可以简单理解为SVN+Apache的集成版本,当然CSVN还有其他的一些特性(角色的用户管理,灵活的角色和权限配置以及LDAP认证,基于角色的多仓库管理,自动备份、恢复,以及模板和Rest APIs管理),可以看下面的官方介绍:
CollabNet Subversion Edge includes everything you need to install, manage and operate a Subversion server. It includes all of the Subversion and Apache binaries needed to run a Subversion server. It also integrates the popular ViewVC repository browsing tool so that users can view repository history from a web browser.
现公司我们给开发人员部署的正是CSVN,简单易用,权限管理,备份等管理通过web来操作,搭建完成后,基本无需进入命令行操作,也可以配合rsync进行触发推送。下面是我的一些文件截图,这篇博文,只是简单的谈谈搭建,至于rsync,以及一些权限的管理、维护等部分暂时从略。



我们现在谈谈CSVN安装脚本及软件(下载),截图如下




0、将如下文件上传到/tmp/目录下

CollabNetSubversionEdge-4.0.7_linux-x86_64.tar.gz
jdk-6u45-linux-x64-rpm.bin
install-csvn.sh
csvner.sh
1、安装前确认系统内存大于512MB[ free -m ]

2、Python 2.4 to 2.6 must be installed.默认CentOS5.5+系统已经安装。 [ rpm -qa python ] [ python -V ]

3、安装脚本将会安装jdk,此处默认系统是没有安装jkd的。[ java -version ]

4、脚本运行中需要输入密码,因此需要安装expect

5、安装执行下面语句(安装目录为/data/csvn)

sh -x install-csvn.sh


6、安装完成后要注意的配置文件

/data/csvn/data/conf/csvn.conf
/data/csvn/data/conf/csvn_main_httpd.conf
以下为配置文件的关键项

[root@lb02 /data/csvn/data/conf]# grep JAVA_HOME /data/csvn/data/conf/csvn.conf
# JAVA_HOME_CONF points to a file whose first line is exported as the JAVA_HOME when
JAVA_HOME=/usr/java/default
[root@lb02 /data/csvn/data/conf]# grep RUN_AS_USER /data/csvn/data/conf/csvn.conf
RUN_AS_USER=csvner
[root@lb02 ~]# grep ServerName /data/csvn/data/conf/csvn_main_httpd.conf
ServerName "lb02.ws.com"
[root@lb02 ~]# grep Listen /data/csvn/data/conf/csvn_main_httpd.conf
Listen 18080
[root@lb02 ~]#
7、此外安装完成后会添加两项启动项

[root@lb02 /data/csvn/data/conf]# ll /etc/init.d/csvn /etc/init.d/csvn-httpd
lrwxrwxrwx 1 root root 19 Jul 20 09:21 /etc/init.d/csvn -> /data/csvn/bin/csvn
lrwxrwxrwx 1 root root 25 Jul 20 09:21 /etc/init.d/csvn-httpd -> /data/csvn/bin/csvn-httpd
[root@lb02 /data/csvn/data/conf]#
8、浏览器登陆(端口3343,用户admin,密码admin),直接上图


install-csvn.sh脚本内容如下:
#!/bin/bash
#Author: watchsky126(at)gmail.com
#Tested: CentOS 5.8_64bit(2.6.18-308.el5)
export PATH=$PATH:/bin:/sbin:/usr/sbin
#Require root to run this script
if [ $(id -u) != "0" ]; then
echo "Error: You must be root to run this script."
exit 1
fi
#Check memory
MemTotal=`free -m | grep Mem | awk '{print  $2}'`
if [ $MemTotal -lt 512 ]; then
echo -e "\n Memory is: ${MemTotal} MB "
echo -e "\n Memory should ideally have about 512 MB of RAM available."
exit 1
fi
#check files
if [ -s /tmp/CollabNetSubversionEdge-4.0.7_linux-x86_64.tar.gz ]; then
echo "CollabNetSubversionEdge-4.0.7_linux-x86_64.tar.gz [found]"
else
echo "Error: CollabNetSubversionEdge-4.0.7_linux-x86_64.tar.gz not found!!!Upload it......"
exit 1
fi
if [ -s /tmp/jdk-6u45-linux-x64-rpm.bin ]; then
echo "jdk-6u45-linux-x64-rpm.bin [found]"
else
echo "Error: jdk-6u45-linux-x64-rpm.bin not found!!!Upload it......"
exit 1
fi
if [ -s /tmp/csvner.sh ]; then
echo "csvner.sh [found]"
else
echo "Error: csvner.sh not found!!!Upload it......"
exit 1
fi
#Install jdk and expect
sh jdk-6u45-linux-x64-rpm.bin
yum -y install expect
useradd csvner
echo 'csvner123456' |passwd --stdin csvner && history -c
/bin/cp /etc/sudoers{,.`date +"%Y-%m-%d_%H-%M-%S"`}
echo "csvner ALL=(ALL)       ALL" >>/etc/sudoers
mkdir -p /data/
chmod 777 -R /data/
#Install csvn using the user csvner
su - csvner -c "sh -x /tmp/csvner.sh"
chmod 755 /data
/etc/init.d/csvn restart
exit 0
csvner.sh脚本内容如下
#!/bin/bash
export JAVA_HOME=/usr/java/default
tar xf /tmp/CollabNetSubversionEdge-4.0.7_linux-x86_64.tar.gz -C /data/
/usr/bin/expect -c "set timeout -1; spawn sudo -E /data/csvn/bin/csvn install; expect \"password\"; send \"csvner123456\\r\"; interact"
/usr/bin/expect -c "set timeout -1; spawn sudo /data/csvn/bin/csvn-httpd install; expect \"password\"; send \"csvner123456\\r\"; interact"
/data/csvn/bin/csvn start
exit 0
参考以及软件下载网址:
http://kerry.blog.51cto.com/172631/799922
http://www.collab.net/downloads/subversion
http://www.oracle.com/technetwork/java/javase/downloads/index.html

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息