1. 程式人生 > >centos svn伺服器搭建 多賬號多專案不同許可權配置 hook配置 專案提交自動同步 測試及生產環境配置

centos svn伺服器搭建 多賬號多專案不同許可權配置 hook配置 專案提交自動同步 測試及生產環境配置

內容分為兩大部分:1.svn伺服器搭建配置 2.svn hook配置專案提交自動同步到測試環境,及測試生產環境配置。
一,伺服器配置
1、安裝svn:
yum install subversion
svn –version
如果彈出svn版本資訊說明安裝成功
2、分別建立不同專案的版本庫比如ios,android,www等
svnadmin create /var/svn/ios
svnadmin create /var/svn/android
svnadmin create /var/svn/www
cd /var/svn
ls
然後可以看到:
這裡寫圖片描述
藍色目錄即為建立的專案倉庫
3、檢視專案當中的內容如www目錄 cd www/conf 可以看到有三個檔案,authz,passwd,svnserve.conf
為了統一管理不同專案不同svn使用者的不同訪問許可權,需要把倉庫當中的authz 和passwd兩個檔案拷貝到外層svn主目錄中,如上圖。
分別對每個專案倉庫進行配置,比如www專案:
vi /var/svn/www/conf/svnserve.conf
分別找到,並改為如下:
anon-access = none #禁止匿名訪問
auth-access = write
password-db = /var/svn/passwd #統一用這個檔案配置密碼
authz-db = /var/svn/authz #統一用這個檔案配置許可權
realm = www #許可權域名,在authz裡面配置許可權使用可以與專案名相同
如果是android就用:
vi /var/svn/android/conf/svnserve.conf
4、配置svn帳號及訪問許可權:
vi var/svn/authz
如下:
這裡寫圖片描述


注意[www:/] 這裡的www,android,python是與剛才專案中配置的realm對應的
配置中的各個組分別有各個專案的訪問許可權,boss有所有專案許可權
然後配置密碼:
vi /var/svn/passwd
如圖,分別列出來配置就行了:
這裡寫圖片描述
啟動svn:
systemctl start svnserve
設定開機啟動:
systemctl enable svnserve
檢視執行狀態:
netstat -ntl
這裡寫圖片描述
如圖看到有埠號3690就說明svn伺服器正常運行了。

二,在同一個伺服器上建立測試環境與生產環境,由於兩者環境完全相同,則提交程式碼到生產環境後基本就沒問題了,使用方便。
1. 思路是這樣,比如對於www網站專案,在伺服器建立兩個svn倉庫,一個作為生產環境,一個作為測試環境,測試環境需要用svn hook自動同步,這樣commit之後測試環境直接生效,測試完成後再對生產倉庫update即可,下面建立:
svn co svn://localhost/www /project/www
svn://localhost/www是svn倉庫, /project/www是生產環境專案路徑 按提示輸入svn帳號密碼
svn co svn://localhost/www /project/wwwTest
後面一個可以作為測試環境專案路徑

2.配置svn hook 專案自動同步:
vi /var/svn/wwwTest/hooks/post-commit

#!/bin/sh
export LANG=en_US.utf8
SVN_PATH=/usr/bin/svn
WEB_PATH=/huizai/wwwTest
$SVN_PATH update $WEB_PATH --username 'username' --password '123456' --no-auth-cache

把上面程式碼拷貝進去儲存 注意svn帳號密碼要正確
修改許可權
chmod 755 /var/svn/wwwTest/hooks/post-commit
此時再往www倉庫提交程式碼就會自動同步到 /project/wwwTest 目錄中。

3.二級域名配置,比如配置test.baidu.com這種網址作為測試網址:
如果是使用的阿里雲域名,則需要配置test二級域名解析如圖:
這裡寫圖片描述
其中記錄值是ip地址,如果是其它平臺備案的域名則需要去相應平臺更改一下支援

4.配置nginx根據二級域名解析到wwwTest測試專案:
開啟nginx配置檔案:
一般路徑在:/etc/nginx/nginx.conf 或者
/etc/nginx/conf.d/….conf
把server區塊再從新拷貝貼上到原有server下面
修改 server_name為: *.test.baidu.com; #要注意這個域名有沒有在上一個server裡面包括,包括了要從上一個當中去除掉
修改 root為: /project/wwwTest;
重啟nginx:
systemctl restart nginx

5.此時開啟瀏覽器輸入網址則訪問www目錄,輸入test….com 訪問wwwTest目錄,本地svn提交直接同步到wwwTest目錄,測試環境直接生效,要提交生產環境直接svn up即可。