svn服务部署

简介:

os:centos6.5 x64

hostname : vm2.lansgg.com

ip: 192.168.85.130

svn版本  :CollabNetSubversionEdge-5.1.3_linux-x86_64.tar.gz
jdk版本  :jdk1.6.0_22-64.tar.gz 
python版本 : Python 2.6.6

1、安装jdk

1
2
3
4
5
6
7
8
9
10
[root@vm2 ~] # tar xf jdk1.6.0_22-64.tar -C /usr/local/
[root@vm2 ~] # vim /etc/profile
JAVA_HOME= /usr/local/jdk1 .6.0_22-64                      
export  JAVA_HOME
JAVA_BIN=$JAVA_HOME /bin
export  JAVA_BIN
PATH=$JAVA_BIN:$PATH
export  PATH
CLASSPATH=.:$JAVA_HOME /lib/dt .jar:$JAVA_HOME /lib/tools .jar
export  CLASSPATH

Ps : 此处的jdk配置可以写入svn的配置文件中,在jdk共存的环境中可以使用。

2、创建用户及安装目录

1
2
3
4
5
6
7
8
[root@vm2 ~] # useradd -d /opt/svnuser svnuser
[root@vm2  ~] # echo "svnuser" |passwd --stdin svnuser
更改用户 svnuser 的密码 。
passwd : 所有的身份验证令牌已经成功更新。
[root@vm2  ~] #  groupadd svn
[root@vm2  ~] # usermod -G svn svnuser
[root@vm2 ~] # mkdir /svn
[root@vm2 ~] # chown svnuser.svnuser /svn -R

2.1、授予用户权限

1
2
3
4
[root@vm2 ~] # visudo
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
svnuser ALL=(ALL)       ALL

2.2、安装svn服务并启动

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@vm2 ~] # su - svnuser
[svnuser@vm2 ~]$  cd  /svn/
[svnuser@vm2 svn]$ ll
总用量 96784
-rw-r--r-- 1 svnuser svnuser 99105484 8月  29 16:25 CollabNetSubversionEdge-5.1.3_linux-x86_64. tar .gz
[svnuser@vm2 svn]$  tar  xf CollabNetSubversionEdge-5.1.3_linux-x86_64. tar .gz 
[svnuser@vm2 svn]$  cd  csvn/
[svnuser@vm2 csvn]$  ls
appserver  bin  data  dist  lib  licenses  pkg  README  www
[svnuser@vm2 csvn]$ bin /csvn  start
Starting CSVN Console...
...
CSVN Console started
Waiting  for  application to initialize (this may take a minute)...........................................................................................................
CSVN Console is ready at http: //localhost :3343 /csvn
[svnuser@vm2 csvn]$

这个过程可能会很慢,登上一两分钟很正常。需要说明这里仅仅是启动Subversion Edge的Web 管理工具,并没有启动绑定了Subversion的Apache, 这一步成功之后SVN服务也不可用。
如果无法启动可以尝试
$ bin/csvn stop  之后再执行
$ bin/csvn start, 或者执行
$ bin/csvn restart
如果还是不行启动那么只好尝试用
$ bin/csvn console
来启动。这个命令将启动信息和错误提示输出到命令行,方便排查错误


web登陆:(用户名、密码都是admin)
http://192.168.85.130:3343/csvn/login/auth 

wKiom1fD_ieRn5EoAAEOQtauL_g201.jpg-wh_50


3 、Subversion Edge首次登录和设置

你需要登录CollabNet Subversion Edge基于Web的Console来做些设置,之后才能启动Edge中负责SVN的Apache. Web Console的登录信息:

你也可以在Web Console中设置强制使用SSL方式访问Console,这时候对3343端口的访问将会被重定向到安全端口4434. 

如果本机没有X桌面,就需要通过网络访问。需要将localhost更改为Subversion Edge服务器的IP地址,同时设置防火墙来保证能够访问到。

3.1 首次设置
首次访问会显示Getting Started向导,提醒你更改admin密码、更改Server Setting、链接Coldorge. 服务器设置中主机名和端口两项比较重要,如设置不当可能导致Subversion无法启动。
假设主机名设置成了svn.example.com, 那么本机在启动Subversion的时候会解析svn.example.com, 如果解析不正确服务就无法启动。保险的做法是在/etc/hosts中加入127.0.0.1       svn.example.com, 同时更改/etc/sysconfig/network中HOSTNAME=svn.example.com. 如果是公网服务请设置域名的解析记录,内网的话可设可不设。
端口号默认是80, 但是设置成80会导致Subversion服务不能启动。原因是Linux要求只有root才能使用端口号小于1024的端口,而Subversion Edge必需要以非root权限运行。当你把端口号设置80的时候,Subversion Edge也会提醒你需要做额外的设置。你现在面临两个选择,要么指定一个大于等于1024的端口,要么进行额外的设置。具体如下:
chown root:svn /srv/csvn/lib/httpd_bind/httpd_bind
chmod u+s /srv/csvn/lib/httpd_bind/httpd_bind
svn是Subversion Edge执行用户svnuser所在的组。

1
2
[root@vm2 svn] # chown root:svn /svn/csvn/lib/httpd_bind/httpd_bind
[root@vm2 svn] # chmod u+s /svn/csvn/lib/httpd_bind/httpd_bind

4、安装应用程序,以便它将服务器重新启动时自动启动
系统重新启动时自动启动服务运行以下命令在用户的服务器来运行。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[svnuser@vm2 csvn]$  sudo  -E bin /csvn  install
 
We trust you have received the usual lecture from the  local  System
Administrator. It usually boils down to these three things:
 
     #1) Respect the privacy of others.
     #2) Think before you type.
     #3) With great power comes great responsibility.
 
[ sudo ] password  for  svnuser: 
Detected RHEL or Fedora:
Installing the CSVN Console daemon..
Setting RUN_AS_USER to:  'svnuser' . Please edit  '../data/conf/csvn.conf'  if  this needs to be adjusted
Setting JAVA_HOME to:  '/usr/local/jdk1.6.0_22-64' . Please edit  '../data/conf/csvn.conf'  if  this needs to be adjusted.
[svnuser@vm2 csvn]$
1
2
3
4
[svnuser@vm2 csvn]$ chkconfig --list  | grep  svn
csvn               0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
svnserve           0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
[svnuser@vm2 csvn]$

除了配置系统与系统服务器已启动,它还将写当前JAVA_HOME和当前用户名/ conf / csvn.conf文件数据。如果需要你可以编辑这个文件,因为它控制着启动应用程序的设置。通过设置JAVA_HOME和RUN_AS_USER变量在此文件中,确保他们正确地设置在应用程序运行时。


5、用户管理 (推荐使用集成公司oa系统,如ldap认证)
1、控制台用户
重要文件:{安裝路径}\data\csvn-production-hsqldb.script 和{安裝路径}\data\csvn-production-hsqldb.properties

控制台管理用的是hsql数据库,并且数据全部存储在内存中。
    第一步:服务启动(指服务CollabNetSubversionServer绑定的httpd.exe)时,执行csvn-production-hsqldb.script在内存中初始化表和数据;
    第二步:期间的所有操作都是保存在内存中;
    第三步:服务关闭时,内存中的所有数据更新到csvn-production-hsqldb.script文件中。
    因为无法在页面修改删除用户,所以采用关闭服务修改csvn-production-hsqldb.script的方式可以实现用户的管理。
A:首先在控制台关闭Subversion服务;
B:然后关闭csvn服务。

1
#service csvn stop


C:用htpasswd产生md5密码

1
2
3
#../csvn/bin/htpasswd -nb Username Passwd
Automatically using MD5  format .
test :$apr1$8zaa10Xj$H5vxdhlLDGCo94D5Xkfeu.

D:修改csvn-production-hsqldb.script
用新的密码替换掉原Username的密码0ef9a776d895692b2710e8b996f12af6即可。(切忌:一定要停止服务后修改才有效,否则脚本文件会被覆盖掉。)
删除用户
    关闭上面两个服务后删除csvn-production-hsqldb.script文件末尾的制定用户后启动服务即可。
版本库授权用户管理:
    
    用户存储文件为{安装路径}\data\conf\svn_auth_file,使用{安装路径}\bin\htpasswd.exe进行管理。

 

//增加用户

1
2
3
#../csvn/bin/htpasswd  -b  ../csvn/data/conf/svn_auth_file test test 
Automatically using MD5  format .
Adding password  for  user  test


//删除用户

1
2
3
#../csvn/bin/htpasswd -D  ../csvn/data/conf/ svn_auth_file test
Automatically using MD5  format .
Deleting password  for  user  test

//修改密码

1
2
#../csvn/bin/htpasswd -D  ../csvn/data/conf/ svn_auth_file test
#../csvn/bin/htpasswd  -b  ../csvn/data/conf/svn_auth_file test 1234

6、ssl设置
SubversionEdge默认安装的是http方式的SVN访问方式,当然也包含https方式访问,为了提高网络传输安全性,准备尝试一下带SSL的http访问方式,在设置中勾上https访问方式直接重启就可以了。

wKioL1fEASHhMywFAACJ3xxPeMs666.jpg-wh_50

wKiom1fEAUvgnlhzAAEq4nRZges916.jpg-wh_50

如果你讲下面的控制台加密勾选,

admin管理地址就会变成:
https://192.168.85.130:4434/csvn/

7、ldap认证设置(自行测试)

wKiom1fEAhOBdFEdAAF2P6WTEkA406.jpg-wh_50

8、备份、还原

备份和恢复还是比较简单的,可以在页面设置备份计划,也可以自己写脚本备份,

直接备份仓库文件即可,因为svn只要有仓库文件就可以还原

备份   /svn/csvn/data 或 /svn/csvn/data/repositories


还原:

直接将备份的data进行copy到data位置,

或者将repositories的单个仓库分别copy到repositories下进行单个仓库的恢复


本文转自 西索oO 51CTO博客,原文链接:http://blog.51cto.com/lansgg/1844836


相关文章
|
3月前
|
存储 网络协议 Ubuntu
如何通过内网穿透实现远程访问Linux SVN服务
如何通过内网穿透实现远程访问Linux SVN服务
41 0
|
1月前
|
自然语言处理 Shell 网络安全
Liunx服务器搭建SVN服务,并通过钩子实现代码自动部署
Liunx服务器搭建SVN服务,并通过钩子实现代码自动部署
32 3
|
3月前
|
存储 网络协议 Ubuntu
【SVN内网穿透】远程访问Linux SVN服务(二)
由于文档资料越来越多,将所有资料都存放在自己的电脑上容易混淆,并且也不利于分享。这种情况下,考虑将资料上传SVN统一管理,这样一来其他人也能很方便的查略各种资料。 当SVN安装在局域网内的话,想要远程访问资料库或者代码将会受到限制,为了能从公共网络访问内网SVN资料库,cpolar能很好的解决这一需求,cpolar是一个能把内网服务暴露至公网进行访问的工具。 SVN分为服务端和客户端,服务端主要是做数据资料存储,客户端主要是图形化工具连接服务端获取服务端数据资料,下面介绍在ubuntu系统安装服务端,在通过客户端远程访问。
|
3月前
|
存储 Ubuntu 网络协议
【SVN内网穿透】远程访问Linux SVN服务(一)
由于文档资料越来越多,将所有资料都存放在自己的电脑上容易混淆,并且也不利于分享。这种情况下,考虑将资料上传SVN统一管理,这样一来其他人也能很方便的查略各种资料。 当SVN安装在局域网内的话,想要远程访问资料库或者代码将会受到限制,为了能从公共网络访问内网SVN资料库,cpolar能很好的解决这一需求,cpolar是一个能把内网服务暴露至公网进行访问的工具。 SVN分为服务端和客户端,服务端主要是做数据资料存储,客户端主要是图形化工具连接服务端获取服务端数据资料,下面介绍在ubuntu系统安装服务端,在通过客户端远程访问。
|
9月前
|
网络协议 Ubuntu
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问(下)
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问(下)
102 0
|
9月前
|
存储 Ubuntu 数据安全/隐私保护
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问(上)
Ubuntu搭建SVN服务 - 内网穿透实现公网远程访问
155 0
|
10月前
|
存储 网络协议 Ubuntu
简单实现远程访问Linux SVN服务(上)
简单实现远程访问Linux SVN服务
166 0
|
网络协议 Linux 网络安全
Linux下svn的安装以及在Apache服务下访问
最近安装SVN过程中遇到了很多坑,做一下记录。
202 0
Linux下svn的安装以及在Apache服务下访问
|
Ubuntu Linux Shell
Linux 下使用 SVN 服务
安装 CentOS 系统 yum install -y subversion ubuntu 系统 sudo apt-get install subversion 创建对应目录 使得/data/svn作为svn项目的一个根目录
213 0
|
Linux 开发工具 数据安全/隐私保护
Centos7搭建SVN服务(多个仓库)并利用svn 钩子(hooks)自动部署仓库代码到指定web目录...
Centos7搭建SVN服务(多个仓库)并利用svn 钩子(hooks)自动部署仓库代码到指定web目录...
177 0
Centos7搭建SVN服务(多个仓库)并利用svn 钩子(hooks)自动部署仓库代码到指定web目录...