2013-05-06 76 views
3

在工作中,我們開發了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)上使用不同的分支。

您對此有何看法?我願意接受任何建議或建議:-)

裸+非裸露的存儲庫似乎有點奇怪,而且我不確定如果某些提交無法按預期工作時回滾。

+0

+1對於漂亮的ascii圖。這幾乎被遺忘的技巧/藝術。 – quetzalcoatl 2013-05-06 21:34:20

回答

0

雖然可以使用git作爲部署工具,但這並不是它的預期功能。也許你應該考慮cfengineCapistrano

+0

謝謝你的回答。所以你認爲我應該分割開發和部署?我已經知道一些木偶,我也會看看cfengine。 – TatrefThekiller 2013-05-12 19:42:45

+0

我毫不懷疑它可能建立使用Git掛鉤涉及多個主機上部署系統,這聽起來像你已經開始了這條道路;也許那符合你的需求。儘管這混帳是設計時考慮到,不部署修訂跟蹤這是事實,即使它已經發展到這兩個實用的程度。 – gcbenison 2013-05-13 19:15:33