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

[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、創建用戶及安裝目錄

[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、授予用戶權限

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

2.2、安裝svn服務並啓動

[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所在的組。

[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、安裝應用程序,以便它將服務器重新啓動時自動啓動
系統重新啓動時自動啓動服務運行以下命令在用戶的服務器來運行。

[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]$
[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服務。

#service csvn stop


C:用htpasswd產生md5密碼

#../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進行管理。

 

//增加用戶

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


//刪除用戶

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

//修改密碼

#../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下進行單個倉庫的恢復

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章