aliyun ECS SVN server搭建
在阿裏雲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搭建