我們用git託管程式碼, 線上有多台伺服器, 求程式碼自動部署同步所有伺服器的方法;
希望提供較詳細的方案信息, 謝謝!
不要這樣部署程式碼,靠git pull不能保證同步,而且有台機器pull沒成功怎麼辦。建議單獨一台部署機,pull程式碼,增量同步到伺服器,可以用ansible
首先,想知道你是把origin裸庫佈置在線上的某台伺服器上,還是把線上的這些伺服器都當做從origin複製程式碼的客戶端。 其次,線上的伺服器可以做這麼幾件事來實現自動化部署:1. 給git增加增加鉤子動作,每次git在完成某項動作是,可以透過該鉤子附帶執行對應的動作;2. 利用linux的corntab和shell腳本,定時執行一些檢查,或定時執行一些git更新;3. 還是利用2中的方法,定期對檔案進行同步,也就是樓上說的sync。 這是我的思路。
rsync伺服器檔案同步
期中的一台伺服器你用git部署了,其他伺服器都是單向rsync同步目前機器即可
用Capistrano
teamcity 或 jenkins自動建置工具,再寫腳本把建置好的檔案上傳到各台機器上。
不要這樣部署程式碼,靠git pull不能保證同步,而且有台機器pull沒成功怎麼辦。建議單獨一台部署機,pull程式碼,增量同步到伺服器,可以用ansible
首先,想知道你是把origin裸庫佈置在線上的某台伺服器上,還是把線上的這些伺服器都當做從origin複製程式碼的客戶端。
其次,線上的伺服器可以做這麼幾件事來實現自動化部署:1. 給git增加增加鉤子動作,每次git在完成某項動作是,可以透過該鉤子附帶執行對應的動作;2. 利用linux的corntab和shell腳本,定時執行一些檢查,或定時執行一些git更新;3. 還是利用2中的方法,定期對檔案進行同步,也就是樓上說的sync。
這是我的思路。
rsync伺服器檔案同步
期中的一台伺服器你用git部署了,其他伺服器都是單向rsync同步目前機器即可
用Capistrano
teamcity 或 jenkins自動建置工具,再寫腳本把建置好的檔案上傳到各台機器上。