SVN+Rsync+Sersync自動同步代碼到公網服務器

SVN+Rsync+Sersync自動同步到公網服務器

概述

部署過程的每一個步驟都自動化,可以帶來包括效能在內的顯著的好處。你可以手工做這些事情,但是很耗時。二者的生產率差異真的很大。

對於習慣於開發和部署本地應用的組織來說,設置自動部署工具的確給軟件開發引進了一個新的步驟,需要一個學習的過程,還要有相關的投入。但是見效很快,因爲每進行一輪開發,你都可以快速地部署到雲上然後進行測試過程,第一次把東西設好是個挑戰,但這完全是值得的。(扯這麼多就是爲了偷懶,這纔是重點)

應用場景:

當新的項目部署到線上之後,後期可能還會有小的調試修改,新增、刪除、修改等等操作;現有狀況是開發人員提交代碼給運維人員,在由運維去手動執行,有些項目文件的名稱相差不大時,經常會出錯。

#####如果還有更好的自動化工具歡迎留言,試過jenkins+gitlab持續集成但是速度太慢了,有時候一天改動不下於50次,Jenkins+svn又還沒來弄出來;

工作原理:

  • 開發人員在本地提交代碼到SVN;
  • SVN通過Commit自動更新到內網服務器;
  • 內網服務器使用Rsync+Sersync監控源代碼文件變化;
  • 檢測到文件發生變化之後同步數據到公網服務器上;

 

工具介紹:

SVNSVNSubversion的簡稱,是一個開放源代碼的版本控制系統;

Commit:屬於SVN裏面的一個插件,用來提交完成時觸發事務;

Rsync用來做數據備份,文件實時同步的工具;

Sersync自己去百度一下Rsync+Sersync就知道了;

 

服務器信息:

主機名

IP

所屬區域

系統

擔任角色

Source

192.168.100.125/24

內網

Centos 7.4

源代碼存放

Destination

47.91.235.62/32

外網

Centos 7.4

線上服務器

 

Svn+Commit環境配置鏈接:

https://blog.csdn.net/qq_32731747/article/details/82262716

 

本次實驗只部署rsync+sersync,應用到實際環境上。

Destination配置:

[root@destination ~]# yum -y install rsync   #安裝rsync工具

[root@destination ~]# vim /etc/rsyncd.conf

uid = root

gid = root

use chroot = yes

max connections = 10

strict modes = yes

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

log file = /var/run/rsyncd.log

 

[www]

#模塊名稱

path= /www/wwwroot/47_91_235_62/

#數據存放目錄,這裏爲我網站的根目錄

comment= analyse

read only = no

hosts allow = *

[root@destination ~]# /usr/bin/rsync --daemon /etc/rsyncd.conf  #啓動服務

Source配置:

[root@source ~]# yum -y install rsync

[root@source ~]# mkdir test  #先創建一個測試文件夾

[root@source ~]# touch ./test/abcd.txt  #創建測試數據

[root@source ~]# ssh-keygen   #使用root用戶免交互登陸

Generating public/private rsa key pair.   #回車

Enter file in which to save the key (/root/.ssh/id_rsa):   #回車

Enter passphrase (empty for no passphrase):   #回車

Enter same passphrase again:  #回車

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:l7pPzaWl4vs1urARAJMBcBa7pGmTnpD62l/sBBIzs9U root@source

The key's randomart image is:

+---[RSA 2048]----+

|  ..=o+o         |

|   o o.o         |

|  = + E .        |

| . % .   . .     |

|o O o   S +   o  |

|.+ + o   o + =   |

|. o   + . = = o  |

| o   +   + = o . |

|..o.. . ..=o+.   |

+----[SHA256]-----+

[root@source ~]# ssh-copy-id [email protected]   #將公鑰給目標服務器

/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"

The authenticity of host '47.91.235.62 (47.91.235.62)' can't be established.

ECDSA key fingerprint is SHA256:1MqJ2HF1oUToNzdCzoRfRpXJA71/hW4X2sLCJeFbXa0.

ECDSA key fingerprint is MD5:e2:de:46:35:ca:a6:f8:d1:f3:6a:b0:92:52:19:5b:f7.

Are you sure you want to continue connecting (yes/no)? yes

[email protected]'s password:   #輸入目標服務器root密碼

[root@source ~]# ssh [email protected]   #測試登陸

[root@source ~]# rsync -avzP /root/test/ [email protected]::www/ 

#測試數據是否同步成功

切換到目標服務器查看同步是否成功:

安裝sersync :

#wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz

鏈接: https://pan.baidu.com/s/1gioP_p8pyNh0KtKKkuyYvw 提取碼: 5a8q 

[root@source ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz   #解壓

[root@source ~]# mv GNU-Linux-x86/ /usr/local/sersync

[root@source ~]# cd !$

cd /usr/local/sersync

[root@source sersync]# vim confxml.xml   #編輯配置文件

原:

24  <localpath watch="/opt/tongbu">

25  <remote ip="127.0.0.1" name="tongbu1"/>

31  <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>

32  <userDefinedPort start="false" port="874"/><!-- port=874 -->

修改後:

24  <localpath watch="/www/wwwroot/192.168.100.125">

<!—-設置監控的目錄-->

25  <remote ip="47.91.235.62" name="www"/>

<!—設置目標服務器的IP模塊名在目標服務器/etc/rsyncd.conf 裏面” -->

31  <auth start="true" users="root" passwordfile="/etc/rsync.pas"/>

<!—-設置同步的用戶名和密碼文件-->

32  <userDefinedPort start="false" port="873"/><!-- port=874 -->

 <!—-設置rsync的端口,要和目標服務器那邊開啓的端口一致-->

[root@source ~]#/usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/confxml.xml

#啓動服務

查看結果:

新增

刪除:

源服務器上執行# rm –rf s* && rm –rf p*

修改源文件內容:

#執行 echo '1234567890' > why

 

總結:

目標服務器:

只需要安裝rsync,修改/etc/rsyncd.conf配置文件

源服務器:

安裝rsync工具

安裝Sersync工具

編輯Sersync 配置文件

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