2011-02-10 169 views
0

Heya, 快速的問題。 我在EC2上有多個實例,它們之間有一個負載平衡器。我使用一個SVN應用程序來推送到我的現場環境。隨意。Amazon EC2多個SVN應用實例

對於多個EC2,我該如何將代碼庫一次全部推送給它們? 任何想法/鏈接,將不勝感激。

回答

1

有幾種不同的方法可以做到這一點。

如果您正在使用彈性負載平衡器

寫腳本:

  1. 從池中
  2. 更新SVN庫中刪除機器
  3. 重新添加機器池
  4. 任何其他機器的重複

如果您擔心一致性問題,您也可以看中並刪除一臺機器,更新它,刪除所有其他機器並更新它們。

如果您正在使用自定義負載平衡應用

查找到Capistrano。您不需要將它與Ruby/Rake一起使用 - 您可以編寫可以執行並行部署的自定義cap文件。

0

如何使用vlad或fabric進行代碼部署。

0

我們使用Scalr。它可以作爲一種服務(Scalr.net)提供,也可以自己運行(它是開源的 - 儘管googlecode存儲庫中的源代碼有時比服務所使用的版本稍微落後)。基本上,Scalr具有全局腳本功能,您可以在其中指定腳本(例如bash,PHP,帶#!bang的任何內容),並觸發它在給定「角色」的所有實例上運行(例如web實例) 。在我們的例子中,我們有一個腳本,只是將svn checkout或svn更新爲適當的。 Scalr支持定期調度腳本,所以在開發環境中我每隔5分鐘運行一次以保持dev與SVN同步,但顯然我手動觸發它進行生產。 (我有腳本需要一個參數來指定要使用的SVN分支)