1. 程式人生 > >aliyun ECS SVN server搭建

aliyun ECS SVN server搭建

服務配置 綁定 還需 start 中括號 quic 重啟 blank shell

在阿裏雲ECS上搭一個SVN服務器,方便文件版本控制 CentOS 7 64位 SVN 版本 1.7.14 (r1542130)

我們沒有必要了解Subversion的所有特性的方方面面,我們的目的是使用它來對我們的project進行方便的簡單的版本管理,因此,強烈推薦閱讀Subversion Quick-Start Guid和Basic Usage。

首先通過軟件包管理器添加 安裝svn,也就是subversion. 用 rpm 或者 yum 都可以

yum -y install subversion

安裝完成後在 shell窗口 輸入 svn --version 如下顯示就表示安裝成功!

技術分享圖片

安裝成功之後,在/root/下會生成一個.subversion文件夾 也就是~/.subversion, 接下來

[lesten@qu7hz ~]# cd /root/.subversion

[lesten@qu7hz .subversion]# ls
config README.txt servers

# 創建svn 倉庫文件夾repos 你可以創建在任意文件夾下 as you like
[lesten@qu7hz .subversion] mkdir repos/myrepo

# 建立svn 倉庫

[lesten@qu7hz .subversion]# svnadmin create repos/myrepo


[lesten@qu7hz repos]# cd repos/myrepo
[lesten@qu7hz myrepo]# ls
[lesten@qu7hz myrepo]# conf db format hooks locks README.txt

# 導入項目

[lesten@qu7hz myrepo]# svn import ~/home/test/ file:///root/.subversion/repos/myrepo/ -m "init import"

正在增加 /home/test/css
正在增加 /home/test/css/default.css
正在增加 /home/test/index.html

提交後的版本為 1。
導入成功

當前我們已經對myrepo項目進行了初始化導入,此時原工程目錄已經與myrepo脫離,這時候原目錄刪掉也沒關系了

這時候我們已經可以在其他目錄中checkout這個工程出來
svn co file:///root/.subversion/repos/myrepo /home/mytest


接下來需要對權限進行配置 進入myrepo/conf文件夾 ls
authz: 權限配置文件
passwd: 用戶名口令文件
svnserve.conf svn服務配置文件

我希望權限和配置文件共用 可以建立svnserve.conf模板 然後建立一個新的倉庫以後拷貝到新倉庫目錄下就可以了
這裏
mkdir comm_conf
cp /root/.subversion/repos/myrepo/conf/*.* /root/.subversion/repos/comm_conf/

拷貝全部文件 到comm_conf文件夾後 編輯 comm_conf 配置
cd comm_conf
vi server.conf

anon-access = none #未驗證不給予權限 不允許匿名訪問
auth-access = write #驗證後允許寫入
password-db = /root/.subversion/repos/comm_conf/passwd #使用指定value值 文件數據為 用戶名密碼
authz-db = /root/.subversion/repos/comm_conf/authz #使用指定value值 文件數據為 用戶組權限

創建svn組和組用戶權限
vi authz

[group] #指定組下的用戶 多個用逗號分隔
g1=lesten,lesten1

[/] #指定根目錄下的權限 也可以指定特定目錄下的權限
@g1 = rw #指定組g1 用戶具有讀寫權限 
* = r #其他用戶 對根目錄只有讀權限
或者
[repos:/project] //根目錄權限
lesten=rw

設置用戶名和密碼

vi passwd
[users]
lesten = ****** #指定用戶名為lesten的密碼為******

改完以後 用cp命令拷貝到對應倉庫目錄下去
cp server.conf ../myrepo/server.conf

一定要註意
(1)配置項前面不要留空格 不然可能有各種莫名其妙的錯誤 無法訪問
(2)在 authz文件中 指定組和指定目錄 之間是有中括號分隔的 一定要註意
我就是漏掉了 指定根目錄權限的[/] 導致訪問一直出現E170001: Unable to connect to a repository at URL ‘svn:*****‘ 踩坑踩了兩個小時
對配置文件的填寫一定要細心。
(3)對 authz 和 passwd 文件的修改是不需要重新svnserve服務的,對server.conf的修改則需要重啟svnserve服務

全部填寫完畢後

可以試著啟動svn服務了
[lesten@qu7hz ~]# svnserve -dr /root/.subversion/repos/
參數-d表示以守護進程運行,-r後面接服務的根目錄,如果需要綁定別的端口,則在後面加上--listen-port 端口號。

看看是否啟動成功 pgrep svnserve 默認svn端口7690
[lesten@qu7hz ~]# pgrep svnserve
7599
[lesten@qu7hz ~]#

這個就是啟動成功了 回顯了進程pid 7599
重啟的時候就可以 kill 7599 或者 直接 killall svnserve
然後重新 svnserve -dr 倉庫目錄

這時候已經可以用
[lesten@qu7hz ~]# svn co svn://localhost/myrepo --username lesten --password ****** 拉取工作副本了


5. 但是 如果要遠程拉取 還需要在ECS後臺添加安全組規則

技術分享圖片

aliyun ECS SVN server搭建