前面的系列中介绍了如何使用Subversion和Apache安装包搭建Subversion服务器,整个安装过程的配置文件修改彻底是手动修改。不管是SVN项目的添加,仍是用户的添加,以及用户访问权限的设置,以及用户登陆验证方式的修改,都必须登陆到SVN服务器上修改对应的配置文件,效率很是低。而CollabNet提供的Subversion Edge大大简化了SVN服务器的安装,以及安装后的配置,本文主要介绍如何在CentOS 7上安装Subversion Edge以及使用Subversion Edge的GUI界面配置SVN服务器。linux
须要说明的是,Subversion Edge安装的SVN服务器和使用SVN + Apache rpm安装包安装的SVN服务器的Repository以及权限信息等不能共享,若是想迁移旧的Subversion服务器,须要安装Subversion Edge后从新设置。浏览器
本文安装使用与前面文章中不同的新CentOS 7服务器,安装Subversion Edge前请确认已安装和配置JDK环境,本次安装使用的JDKbash
Subversion Edge服务器的启动须要使用非root用户,如同以前安装SVN服务器同样,咱们建立svn用户,用以启动Subversion Edge服务器。服务器
groupadd svn useradd -g svn svn
将svn用户加入/etc/sudoers文件中svn
svn ALL=(ALL) NOPASSWD: ALL
切换到svn用户,执行下列指令spa
sudo mkdir /opt/subversion sudo chown -R svn:svn /opt/subversion sudo chmod o+wx /opt/subversion
从CollabNet官网下载SubversionEdge最新的Linux 64位安装包code
须要注意的是,CollabNet官网对Chrome和Firefox等非IE系浏览器支持不佳,直接经过这两个浏览器下载的tar.gz文件大小错误,为180M,接下来会解压失败,建议使用IE浏览器登陆官网下载。server
将下载后的tar.gz文件放到/opt/subversion目录下,进行解压ip
tar -zvxf CollabNetSubversionEdge-5.2.2_linux-x86_64.tar.gz
解压后会在/opt/subversion目录下生成csvn子目录get
建立csvn.conf文件
cd csvn/data/conf cp csvn.conf.dist csvn.conf
安装Subversion Edge服务
cd /opt/subversion/csvn sudo –E bin/csvn install
执行结果以下图所示
启动csvn服务
cd /opt/subversion/csvn bin/csvn start
启动界面以下图所示(第一次启动初始化会比较费时,须要耐心等待)
启动完成后,须要在防火墙上开放3343端口,供远端访问,咱们安装Subversion Edge的服务器ip是192.168.56.101,在打开防火墙端口后咱们使用浏览器访问http://192.168.56.101:3343/csvn,这是Subversion Edge的UI管理页面,初始登录用户名和密码是admin/admin
登陆后的管理页面以下图
接下来咱们对Subversion服务器进行设置,点击左侧的[Server Settings],打开服务器设置页面
在这个页面中咱们设置服务器的HostName为ip地址192.168.56.101,在下面的Apache Encryption行能够勾选[Subversion Server should serve via https],使用https方式访问Subversion,端口号使用前面系列中的8888(须要打开防火墙端口)
Repository Directory这一行是Subversion全部项目Repository的父目录,默认是
/opt/subversion/csvn/data/repositories
点击[Save]按钮保存设置。
保存完成后执行如下指令重启Subversion Edge服务器
cd /opt/subversion/csvn bin/csvn stop bin/csvn start
接下来验证使用LDAP验证登陆和Repository访问权限
首先在LDAP服务器上新建companies节点,在companies节点下新建company1和company2两个子节点
在company1和company2两个子节点下分别创建svnuser1和svnuser2两个用户,设置登陆密码,建好后以下图所示
点击[Configuration]-[Authentication]打开用户验证设置页面,因为咱们已经搭建了LDAP服务器,咱们在[Authentication Methods]行勾选[LDAP authentication against an LDAP server],并进行以下配置
在[Repositories List]中新建两个Repository Company1Project和Company2Project。
点击左边菜单栏的[Access Rules]菜单,设置SVN目录的访问权限,
这里建立了3个组,管理员组adminGroup,company1组,company2组
adminGroup组包含admin用户,对SVN根木以及其子目录有读写权限。
company1组包含LDAP的svnuser1用户,对Company1Project项目有读写权限。
company2组包含LDAP的svnuser2用户,对Company2Project项目有读写权限。
设置完成后重启Subversion Edge服务器。
重启完成后咱们使用TortoiseSVN访问https://192.168.56.101:8888/svn/Company1Project,使用svnuser2用户进行登陆,显示没有权限访问
一样咱们访问https://192.168.56.101:8888/svn/Company2Project,使用svnuser1用户登陆,也
弹出无权访问的错误信息窗口。
若是咱们使用svnuser1访问https://192.168.56.101:8888/svn/Company1Project,就会显示Company1Project的目录结构
使用svnuser2访问https://192.168.56.101:8888/svn/Company2Project,一样会显示CompanyProject2的目录结构
接下来咱们把Subversion Edge服务作成开机自启动服务,根据CollabNet的官网指南,只须要执行下面两条指令
sudo -E bin/csvn install sudo -E bin/csvn-httpd install
就能够把CSVN Console和CSVN Apache Http Server的Daemon装上,在系统的/etc/init.d目录下生成csvn和csvn-httpd两个自启动命令,但在具体实践时我发现若是是使用root用户执行Subversion Edge安装时,这两条指令能够成功,重启系统后Csvn页面和Repository均可以访问,不须要手动启动。
若是是非root用户使用sudo命令安装时,执行了上面两条指令后开机后csvn和csvn-httpd都没有手动启动,还须要手动执行bin/csvn start bin/csvn-httpd start启动。这种状况下须要自行添加csvn和csvn-httpd服务。
咱们在/etc/systemd/system目录下手动建立两个服务csvn.service和csvn-httpd.service,分别添加如下内容
csvn.service
[Unit] Description=csvn service After=network.target [Service] Type=forking ExecStart=/opt/subversion/csvn/bin/csvn start ExecStop=/opt/subversion/csvn/bin/csvn stop User=svn Restart=on-abort [Install] WantedBy=multi-user.target
csvn-httpd.service
[Unit] Description=csvn-httpd service After=network.target [Service] Type=forking ExecStart=/opt/subversion/csvn/bin/csvn-httpd start ExecStop=/opt/subversion/csvn/bin/csvn-httpd stop User=svn Restart=on-abort [Install] WantedBy=multi-user.target
最后执行如下指令激活csvn服务和csvn-httpd服务,并启动这两个服务。
sudo systemctl daemon-reload sudo systemctl enable csvn.service sudo systemctl enable csvn-httpd.service sudo systemctl start csvn.service sudo systemctl start csvn-httpd.service
重启Subversion Edge所在CentOS服务器,能够确认csvn服务器和csvn-httpd服务确实开机自启动。