svn搭建遠程服務器

使用svn來管理python的自動化發佈

  創建svn管理目錄:mkdir /data/svn

  進入svn管理目錄:cd /data/svn

  創建svn項:svnadmin create test

  修改/data/svn/test/conf文件夾下的配置文件

  

  可以將這三個文件下載下來進行修改,也可以用vi進行編輯

  將authz文件替換成下面內容:

[test:/]

admin = rw
allempty = rw

   test是svn當前倉庫項的模塊名稱,每個svn的這個名稱都是唯一的,不然可能無法登錄使用

  添加添加了兩個賬號,admin用於服務器端自動同步svn的代碼到對應的web或服務使用,和個人賬號區別出來,方便管理和保護賬號安全,而allempty是我自己添加用於svn更新最新代碼的賬號

  將password文件替換成下面內容:

[users]
admin = 123456allempty = 123456

  這裏設置賬號對應的密碼

  將svnserve.conf文件替換成下面內容:

[general]
anon-access = none
auth-access = writepassword-db = passwdauthz-db = authz

  在/data/svn/test/hooks/目錄下創建post-commit勾子文件(post-commit文件沒有擴展名),用於svn更新成功以後,自動同步到對應的代碼目錄

#!/bin/shexport LANG=en_US.UTF-8/usr/bin/svn up /data/www/test/usr/bin/supervisorctl restart test

  /usr/bin/svn up /data/www/test 這個命令是運行更新指令,本地代碼通過svn更新到服務器以後,勾子會運行它來同步到指定的/data/www/test目錄

  /usr/bin/supervisorctl restart test 因爲我們用的是supervisord來管理python web服務的,代碼更新完成以後並未生效,需要重新服務才行,這個命令是用來重啓指定的supervisord進程的,它們幫我們將對應的uwsgi進程進行重啓操作

  運行命令,將給予勾子post-commit可執行權限:chmod +x /data/svn/test/hooks/post-commit

 

  啓動svn服務:/usr/bin/svnserve -d -r /data/svn

  配置test項目服務器端svn同步設置

  輸入命令:svn checkout svn://localhost/test /data/www/test (在服務器端對test項進行svn檢出操作)

  PS:出現Password for 'root': 直接回車就可以了,Username:輸入前面authz裏設置的賬戶名稱,Password for 'admin': 輸入對應的密碼

  

  操作到這裏,svn的自動化發佈就完成了,我們只需要在本地檢出svn項,然後更新代碼後,服務器端就會自動將代碼同步到/data/www/test目錄下面,並重啓對應的supervisord服務了

  本地操作截圖:(可以下載TortoiseSVN-1.9.4.27285-x64-svn-1.9.4.msi進行使用)

  

  

  

  


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