在工作中,我們開發了Nagios的腳本和擴展。我們爲約30位客戶(每位客戶擁有Nagios服務器)提供監督服務。有些客戶有特定的配置(新模塊檢查非常具體的東西,但要包含在主線中或不包括在內)。擁有多個不同遙控器的git工作流程
現在,Nagios服務器的版本差異很大(有些服務器已有2年曆史,並且沒有更新計劃)。
我很想知道如何切換到git來自動化部署,並使用持續集成來確保我們不會在客戶端的Nagios上破壞某些東西。
這裏是我的想法:
1 single server
\___________________________________________________
| |
dev1 -----\ /---------|---> remote1 (bare) ----> remote1 (nagios etc/) |
\ / |_________________________________________________|
\ /
\ /
dev2 ---- main server (bare) -----------> remote2 (bare) ----> remote2 (nagios etc/)
...
的開發者,和主服務器位於辦公室,當裸遙控器+遙控器都位於客戶。
我已經設法使用後接收掛鉤自動推送到遙控器。
從remote1(bare)到remote1,我可以使用另一個可以cd到remote1的鉤子,然後git pull。然後我可以通過一個簡單的Nagios命令來測試配置,並在出現問題時恢復到以前的提交。
關於文件是遙控器之間是不同的,我可能只是gitignore他們暫時或主服務器(這樣我就可以把customer1表分支REMOTE1)上使用不同的分支。
您對此有何看法?我願意接受任何建議或建議:-)
裸+非裸露的存儲庫似乎有點奇怪,而且我不確定如果某些提交無法按預期工作時回滾。
+1對於漂亮的ascii圖。這幾乎被遺忘的技巧/藝術。 – quetzalcoatl 2013-05-06 21:34:20