2015-10-07 22 views
0

對於我們的電子商務網站,我用下面的與Ansible部署過程: - 從倉庫中拉出源到遠程機器 - 符號鏈接到這個倉庫到/ var/WWW/mysite的/電流 - 配置的符號鏈接文件從回購和Ansible部署代碼的最佳方式是什麼?

但我不確定這是部署代碼的最佳方式,因爲我們可以在遠程使用不需要的文件的所有回購。

所以我想知道是否會更好: - 拉本地代碼(例如在一個tmp中) - 在/ var/www/mysite /發佈/ xxxxxxx - 釋放到當前的符號鏈接

您認爲如何? Ansible有沒有辦法做到這一點?

謝謝。

+1

我不清楚你現在的方法有什麼問題。爲什麼你的回購中會出現「不需要的文件」?如果他們不需要,刪除他們.. – Mxx

+0

假設我有一個文件夾webroot和其他文件夾與我的回購部署和編譯工具。如果我拉回購,這個文件夾也會出現在遠程機器上,當我只需要webroot時,我無法從回購庫中刪除這些文件夾。 – Virge

回答

1

在不瞭解部署環境的所有複雜因素的情況下是否可以有「最佳」答案,這是一個棘手的問題。這就是說,我會根據你所說的內容考慮幾件事情:

爲什麼部署整個回購問題有困難?

您是否存儲不以任何方式與您的代碼交互的大型二進制文件?您可能需要考慮將它們拆分到另一個存儲庫,或者以不同的方式管理它們(例如,大型磁盤映像可能由構建系統提供,而不是保存在git中)。具有這些其他組件的子模塊也可能是一種有用的方法,因爲如果需要,可以在不拉動子模塊的情況下克隆存儲庫。

或者是git repo的大型歷史導致克隆大?在這種情況下,你可以做一個淺層克隆,這是Ansible的git模塊支持的。

歸檔和複製

這聽起來像一個解決方案,更令人費解比它需要。假設這需要保留一個你想在Ansible repo中刪除的文件列表(增加你的Ansible代碼和目標部署的repo的耦合),將本地克隆調整爲臨時文件,刪除文件,完成存檔,做遠程傳輸,做遠程unarchive。

這與簡單地調用Ansible git子模塊形成對比。

我討厭在不需要的地方增加更多的複雜性。我的目標是最簡單的方法。

+1

你是對的,回購包含文件夾和文件,應該在另一個回購站中分割。我會清理它,只保留webroot並部署所需的文件。謝謝 – Virge

相關問題