2012-08-22 57 views
2

我的系統基於LAMP堆棧。我有2個同步應用程序服務器。將更改的文件部署到兩臺生產服務器的最佳方式是什麼?將更改的文件部署到生產Web服務器的工具

目前的情況是:

  • 有時候,我用我的臨時服務器,有時如果不要求我直接從開發服務器複製文件到生產服務器。
  • 我可能會將某些問題直接修復到我的生產服務器。
  • 我們使用svn作爲開發服務器和測試服務器,但是由於安全問題,它沒有用於生產服務器。我甚至不確定開發者的提交。
  • 每次我必須查看文件之間的差異,然後將更改複製到我的生產服務器。有時候,我必須合併這些文件。

我可以通過一些工具告訴我生產服務器中的給定文件有變化,然後相應地合併/複製衝突,並以優化的方式安全地部署所有更改的文件。

回答

0

我可能首先在部署服務器上有一個鏡像目錄,存儲在本地,可以進行版本控制。使用像rsync這樣的鏡像工具可以確保你在兩個地方都有相同的文件。

然後,您可以將部署服務器上的確切信息添加到subversion中。如果它們不適合開發/測試版本,那麼您可以在部署版本中有一個分支,您可以從主分支定期合併。

通過這種方式檢查修改是在部署鏡像上使用您最喜歡的svn工具執行「svn status」或「檢查修改」,然後您可以輕鬆檢查更改。

需要回放到開發/測試階段的事情顯然需要從部署分支合併回主分支。

+0

感謝@centic回答。目前我的開發服務器和測試服務器是鏡像的。我也有一些配置文件,我不想部署到我的prod服務器。如果我還在存儲庫中添加prod服務器,如何將這些文件阻止到我的prod服務器? –

+0

我會在單獨的分支上刪除它們以進行部署,並在稍後將它們從合併中排除,因爲您使用單獨的分支,您可以保留這些差異,同時仍然能夠在其他方向上成功合併其他更改 – centic

相關問題