Capistrano配置管理的良好实践?

时间:2010-12-05 14:51:25

标签: capistrano

我是Capistrano的新手,我想知道为我的项目管理Capistrano配置的最佳方法是什么。

具体应该config/deploy.rb与项目的源代码管理相关的位置?我应该存储没有特定配置信息的文件模板吗?或者这个配置是否应该在团队中共享自己的repo?

2 个答案:

答案 0 :(得分:2)

当我开始越来越多地使用Capistrano时,我也想知道这一点。我想我们大多数人都认为从功能代码中分别跟踪运行时配置信息是否正确?那么部署配置不应该是这样吗?

我猜您可以将./deploy/文件夹设为SCM子模块。你可以做一个rake任务,生成 Capfile到你的工作副本中,这样你就可以在应用程序之外保留最终的密码和东西......甚至可能有一个宝石可用于此。

但是我选择了另一种方法:

我有大约十个不同的应用程序,其中大多数Capistrano变量可以遵循set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"}等模式,对于源代码存储库路径也是如此。

我从单个应用程序中提取了所有关于部署的知识,而是将其放在一个单独的,通用的“部署”项目中。现在我可以检查该项目并继续:

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

我更喜欢这种模式/关注点的分离,而不是在各处传播Capfiles。

答案 1 :(得分:1)

这是一个非常好的问题。

我最终还将所有与deploy.rb相关的内容放入部署项目中,并从应用程序项目中进行符号链接。当时a正在调查Webistrano,因为它看起来像是能够维护自己的收件人池。由于该项目似乎不再维护,我采用了上述方法。