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即可。

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