2010-12-05 103 views
5

我是Capistrano的新手,我想知道爲我的項目管理Capistrano配置的最佳方法。Capistrano配置管理的最佳實踐?

具體來說,config/deploy.rb應該與我的項目的源代碼控制相關?我應該存儲一個沒有特定配置信息的文件模板嗎?或者這個配置應該在團隊中共享的自己的回購中?

回答

2

當我開始越來越多地使用Capistrano時,我也想知道這一點。我認爲我們大多數人都同意跟蹤運行時配置信息分開功能代碼對嗎?那麼對於部署配置,不應該是這樣嗎?

我想你可以讓你的./deploy/文件夾爲SCM子模塊。你可以做一個耙子任務,生成 Capfile到你的工作副本中,這樣你就可以在應用程序之外保留最終的密碼和內容...甚至可能有一個這樣的寶石。

但是我選擇的替代方法:

我具有約十個不同的應用,穿過其中大部分Capistrano的變量的可以遵循這樣的圖案作爲set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"},並且同樣爲源代碼庫的路徑。

我解除了所有有關從各個應用程序部署的知識,而是將它們放在一個單獨的通用「部署」項目中。現在,我可以檢查的項目走出去,去:

cap [some application] [environment] [deploy task] 

我更關注比周圍到處散佈Capfiles多了很多這種模式/分離。

1

這是一個很好的問題。

我最終還將所有與deploy.rb相關的東西放入了部署項目中,並從應用程序項目中將其鏈接到該項目中。當時正在研究Webistrano,因爲它看起來能夠保持自己的接收池。由於該項目似乎不再被維護,我採用了上述方法。