CentOS 7中使用Subversion Edge安装Subversion服务器

前面的系列中介绍了如何使用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服务确实开机自启动。

相关文章
相关标签/搜索