前面的系列中介紹瞭如何使用Subversion和Apache安裝包搭建Subversion服務器,整個安裝過程的配置文件修改徹底是手動修改。不管是SVN項目的添加,仍是用戶的添加,以及用戶訪問權限的設置,以及用戶登陸驗證方式的修改,都必須登陸到SVN服務器上修改對應的配置文件,效率很是低。而CollabNet提供的Subversion Edge大大簡化了SVN服務器的安裝,以及安裝後的配置,本文主要介紹如何在CentOS 7上安裝Subversion Edge以及使用Subversion Edge的GUI界面配置SVN服務器。linux
須要說明的是,Subversion Edge安裝的SVN服務器和使用SVN + Apache rpm安裝包安裝的SVN服務器的Repository以及權限信息等不能共享,若是想遷移舊的Subversion服務器,須要安裝Subversion Edge後從新設置。瀏覽器
本文安裝使用與前面文章中不同的新CentOS 7服務器,安裝Subversion Edge前請確認已安裝和配置JDK環境,本次安裝使用的JDKbash
Subversion Edge服務器的啓動須要使用非root用戶,如同以前安裝SVN服務器同樣,咱們建立svn用戶,用以啓動Subversion Edge服務器。服務器
groupadd svn useradd -g svn svn
將svn用戶加入/etc/sudoers文件中svn
svn ALL=(ALL) NOPASSWD: ALL
切換到svn用戶,執行下列指令spa
sudo mkdir /opt/subversion sudo chown -R svn:svn /opt/subversion sudo chmod o+wx /opt/subversion
從CollabNet官網下載SubversionEdge最新的Linux 64位安裝包code
須要注意的是,CollabNet官網對Chrome和Firefox等非IE系瀏覽器支持不佳,直接經過這兩個瀏覽器下載的tar.gz文件大小錯誤,爲180M,接下來會解壓失敗,建議使用IE瀏覽器登陸官網下載。server
將下載後的tar.gz文件放到/opt/subversion目錄下,進行解壓ip
tar -zvxf CollabNetSubversionEdge-5.2.2_linux-x86_64.tar.gz
解壓後會在/opt/subversion目錄下生成csvn子目錄get
建立csvn.conf文件
cd csvn/data/conf cp csvn.conf.dist csvn.conf
安裝Subversion Edge服務
cd /opt/subversion/csvn sudo –E bin/csvn install
執行結果以下圖所示
啓動csvn服務
cd /opt/subversion/csvn bin/csvn start
啓動界面以下圖所示(第一次啓動初始化會比較費時,須要耐心等待)
啓動完成後,須要在防火牆上開放3343端口,供遠端訪問,咱們安裝Subversion Edge的服務器ip是192.168.56.101,在打開防火牆端口後咱們使用瀏覽器訪問http://192.168.56.101:3343/csvn,這是Subversion Edge的UI管理頁面,初始登錄用戶名和密碼是admin/admin
登陸後的管理頁面以下圖
接下來咱們對Subversion服務器進行設置,點擊左側的[Server Settings],打開服務器設置頁面
在這個頁面中咱們設置服務器的HostName爲ip地址192.168.56.101,在下面的Apache Encryption行能夠勾選[Subversion Server should serve via https],使用https方式訪問Subversion,端口號使用前面系列中的8888(須要打開防火牆端口)
Repository Directory這一行是Subversion全部項目Repository的父目錄,默認是
/opt/subversion/csvn/data/repositories
點擊[Save]按鈕保存設置。
保存完成後執行如下指令重啓Subversion Edge服務器
cd /opt/subversion/csvn bin/csvn stop bin/csvn start
接下來驗證使用LDAP驗證登陸和Repository訪問權限
首先在LDAP服務器上新建companies節點,在companies節點下新建company1和company2兩個子節點
在company1和company2兩個子節點下分別創建svnuser1和svnuser2兩個用戶,設置登陸密碼,建好後以下圖所示
點擊[Configuration]-[Authentication]打開用戶驗證設置頁面,因爲咱們已經搭建了LDAP服務器,咱們在[Authentication Methods]行勾選[LDAP authentication against an LDAP server],並進行以下配置
在[Repositories List]中新建兩個Repository Company1Project和Company2Project。
點擊左邊菜單欄的[Access Rules]菜單,設置SVN目錄的訪問權限,
這裏建立了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用戶進行登陸,顯示沒有權限訪問
一樣咱們訪問https://192.168.56.101:8888/svn/Company2Project,使用svnuser1用戶登陸,也
彈出無權訪問的錯誤信息窗口。
若是咱們使用svnuser1訪問https://192.168.56.101:8888/svn/Company1Project,就會顯示Company1Project的目錄結構
使用svnuser2訪問https://192.168.56.101:8888/svn/Company2Project,一樣會顯示CompanyProject2的目錄結構
接下來咱們把Subversion Edge服務作成開機自啓動服務,根據CollabNet的官網指南,只須要執行下面兩條指令
sudo -E bin/csvn install sudo -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 service After=network.target [Service] Type=forking ExecStart=/opt/subversion/csvn/bin/csvn start ExecStop=/opt/subversion/csvn/bin/csvn stop User=svn Restart=on-abort [Install] WantedBy=multi-user.target
csvn-httpd.service
[Unit] Description=csvn-httpd service After=network.target [Service] Type=forking ExecStart=/opt/subversion/csvn/bin/csvn-httpd start ExecStop=/opt/subversion/csvn/bin/csvn-httpd stop User=svn Restart=on-abort [Install] WantedBy=multi-user.target
最後執行如下指令激活csvn服務和csvn-httpd服務,並啓動這兩個服務。
sudo systemctl daemon-reload sudo systemctl enable csvn.service sudo systemctl enable csvn-httpd.service sudo systemctl start csvn.service sudo systemctl start csvn-httpd.service
重啓Subversion Edge所在CentOS服務器,能夠確認csvn服務器和csvn-httpd服務確實開機自啓動。