博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CentOS 7中使用Subversion Edge安装Subversion服务器
阅读量:5874 次
发布时间:2019-06-19

本文共 4149 字,大约阅读时间需要 13 分钟。

hot3.png

前面的系列中介绍了如何使用Subversion和Apache安装包搭建Subversion服务器,整个安装过程的配置文件修改完全是手动修改。无论是SVN项目的添加,还是用户的添加,以及用户访问权限的设置,以及用户登录验证方式的修改,都必须登录到SVN服务器上修改对应的配置文件,效率非常低。而CollabNet提供的Subversion Edge大大简化了SVN服务器的安装,以及安装后的配置,本文主要介绍如何在CentOS 7上安装Subversion Edge以及使用Subversion Edge的GUI界面配置SVN服务器。

需要说明的是,Subversion Edge安装的SVN服务器和使用SVN + Apache rpm安装包安装的SVN服务器的Repository以及权限信息等不能共享,如果想迁移旧的Subversion服务器,需要安装Subversion Edge后重新设置。

本文安装使用与前面文章中不一样的新CentOS 7服务器,安装Subversion Edge前请确认已安装和配置JDK环境,本次安装使用的JDK

Subversion Edge服务器的启动需要使用非root用户,如同之前安装SVN服务器一样,我们创建svn用户,用以启动Subversion Edge服务器。

groupadd svnuseradd -g svn svn

将svn用户加入/etc/sudoers文件中

svn     ALL=(ALL)       NOPASSWD: ALL

切换到svn用户,执行下列指令

sudo mkdir /opt/subversionsudo chown -R svn:svn /opt/subversionsudo chmod o+wx /opt/subversion

从CollabNet官网下载SubversionEdge最新的Linux 64位安装包

165329_0JQz_237688.png

 

需要注意的是,CollabNet官网对Chrome和Firefox等非IE系浏览器支持不佳,直接通过这两个浏览器下载的tar.gz文件大小错误,为180M,接下来会解压失败,建议使用IE浏览器登录官网下载。

将下载后的tar.gz文件放到/opt/subversion目录下,进行解压

tar -zvxf CollabNetSubversionEdge-5.2.2_linux-x86_64.tar.gz

解压后会在/opt/subversion目录下生成csvn子目录

165750_p2PK_237688.png

创建csvn.conf文件

cd csvn/data/confcp csvn.conf.dist csvn.conf

安装Subversion Edge服务

cd /opt/subversion/csvnsudo –E bin/csvn install

执行结果如下图所示

172713_MjVT_237688.png

启动csvn服务

cd /opt/subversion/csvnbin/csvn start

启动界面如下图所示(第一次启动初始化会比较费时,需要耐心等待)

173144_jyBJ_237688.png

启动完成后,需要在防火墙上开放3343端口,供远端访问,我们安装Subversion Edge的服务器ip是192.168.56.101,在打开防火墙端口后我们使用浏览器访问http://192.168.56.101:3343/csvn,这是Subversion Edge的UI管理页面,初始登陆用户名和密码是admin/admin

173725_GUTh_237688.png

登录后的管理页面如下图

173836_TXMW_237688.png

接下来我们对Subversion服务器进行设置,点击左侧的[Server Settings],打开服务器设置页面

175227_b9Hb_237688.png

在这个页面中我们设置服务器的HostName为ip地址192.168.56.101,在下面的Apache Encryption行可以勾选[Subversion Server should serve via https],使用https方式访问Subversion,端口号使用前面系列中的8888(需要打开防火墙端口)

175734_LUD0_237688.png

 

Repository Directory这一行是Subversion所有项目Repository的父目录,默认是

/opt/subversion/csvn/data/repositories

点击[Save]按钮保存设置。

保存完成后执行以下指令重启Subversion Edge服务器

cd /opt/subversion/csvnbin/csvn stopbin/csvn start

接下来验证使用LDAP验证登录和Repository访问权限

首先在LDAP服务器上新建companies节点,在companies节点下新建company1和company2两个子节点

在company1和company2两个子节点下分别建立svnuser1和svnuser2两个用户,设置登录密码,建好后如下图所示

141412_fWgh_237688.png

点击[Configuration]-[Authentication]打开用户验证设置页面,由于我们已经搭建了LDAP服务器,我们在[Authentication Methods]行勾选[LDAP authentication against an LDAP server],并进行如下配置

141536_wVNX_237688.png

在[Repositories List]中新建两个Repository Company1Project和Company2Project。

141906_Xzts_237688.png

点击左边菜单栏的[Access Rules]菜单,设置SVN目录的访问权限,

142003_Gsw9_237688.png

这里创建了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用户进行登录,显示没有权限访问

142508_5LQz_237688.png

同样我们访问https://192.168.56.101:8888/svn/Company2Project,使用svnuser1用户登录,也

弹出无权访问的错误信息窗口。

142758_dgCw_237688.png

如果我们使用svnuser1访问https://192.168.56.101:8888/svn/Company1Project,就会显示Company1Project的目录结构

142933_Q9Qy_237688.png

使用svnuser2访问https://192.168.56.101:8888/svn/Company2Project,同样会显示CompanyProject2的目录结构

接下来我们把Subversion Edge服务做成开机自启动服务,根据CollabNet的官网指南,只需要执行下面两条指令

sudo -E bin/csvn installsudo -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 serviceAfter=network.target[Service]Type=forkingExecStart=/opt/subversion/csvn/bin/csvn startExecStop=/opt/subversion/csvn/bin/csvn stopUser=svnRestart=on-abort[Install]WantedBy=multi-user.target

csvn-httpd.service

[Unit]Description=csvn-httpd serviceAfter=network.target[Service]Type=forkingExecStart=/opt/subversion/csvn/bin/csvn-httpd startExecStop=/opt/subversion/csvn/bin/csvn-httpd stopUser=svnRestart=on-abort[Install]WantedBy=multi-user.target

最后执行以下指令激活csvn服务和csvn-httpd服务,并启动这两个服务。

sudo systemctl daemon-reloadsudo systemctl enable csvn.servicesudo systemctl enable csvn-httpd.servicesudo systemctl start csvn.servicesudo systemctl start csvn-httpd.service

重启Subversion Edge所在CentOS服务器,可以确认csvn服务器和csvn-httpd服务确实开机自启动。

转载于:https://my.oschina.net/u/237688/blog/1635450

你可能感兴趣的文章
WordPress 主题开发商将客户当肉鸡,向对手发起 DDoS 攻击
查看>>
Java包的命名规范
查看>>
关于linux下raid的设备文件和格式化
查看>>
The Rising Smart Logistics Industry: How to Use Big Data to Improve Efficiency and Save Costs
查看>>
机器人行业五大趋势:中国成为机器人投资狂热爱好者
查看>>
CITE 2018走进北美,打造拉斯维加斯“中国之夜”
查看>>
为什么计算机科学家们应该了解量子计算?(三):算法棱镜折射出的科学
查看>>
Theano 中文文档 0.9 - 7. 教程
查看>>
在Panorama最新排名中Infor领先其他ERP巨头
查看>>
区块链
查看>>
Java中使用HttpRequest调用RESTfull的DELETE方法接口提示:How to fix HTTP method DELETE doesn't support output...
查看>>
中国商飞宣布将在2021年交付首架C919,不受认证进程的影响
查看>>
IaaS后时代,企业如何玩转云上的业务开发
查看>>
福特牵手伦敦出租车公司,试点自动驾驶拼车服务
查看>>
图像识别攻击还没完全解决,语音识别攻击又来了!
查看>>
Vim出现:_arguments:450: _vim_files: function definition file not found的问题解决
查看>>
一探究竟:善用 MaxCompute Studio 分析 SQL 作业
查看>>
商务部:社区零售业步入“黄金发展期” 大数据挖掘正当时
查看>>
Spark SQL在100TB上的自适应执行实践(转载)
查看>>
c++特性之一-----继承
查看>>