之前項目開發完成,測試階段,借着此時,由於公司暫時用兩台aliyun ecs 做業務層,所以每次都需要同步線上文件,進而想着搞一搞服務器端(小公司,新項目,先小搞一把),搭建一套小的版本控制上線的業務體系,完成之后記錄一下。
開發測試流程如下圖:(由於只講述rsync同步,所以為畫出總體集群部署)
開發者通過git(svn)的方式完成代碼版本控制,將全部代碼push到開發服務器上,待開發完畢通過ssh傳入測試服務器,進而測試組介入,完成相應的測試,通過測試服務器git服務器完成線上正式代碼的版本控制,通過rsync同步到相應的服務器上。
現在書歸正文,記錄一下rsync搭建部署流程(easy版)
首先編輯正式服務器1(將測試環境代碼寫入正式環境)
#global settings pid file = /var/run/rsyncd.pid port = 873 lock file = /var/run/rsyncd.lock log file = /var/log/rsync.log gid = root uid = root #module settings [write_data] #寫模塊 path = /web/rsync/write_data #建立一下目錄,存儲寫入文件 use chroot = no max connections = 15 read only = no list = no ignore errors = yes timeout = 120 auth users = rsync #在此之前建立相應的用戶和密碼 echo "rsync:password123" > /etc/rsyncd.passwd chmod 600 /etc/rsyncd.passwd
secrets file = /etc/rsyncd.passwd
hosts allow = 192.168.2.32 192.168.1.0/24 #限制ip
在測試服務器上編輯shell腳本完成執行同步
#!/bin/bash export RSYNC_PASSWORD="password123" rsync -avz --progress --delete /opt/log rsync@正式服務器ip::write_data
完成shell編輯,完成用git版本控制,用rsync同步的目的了,是不是很easy 搞起來吧~
如果需要實時請使用rsync+inotify http://www.cnblogs.com/davidwang456/p/3684945.html