2010-12-05 134 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,因为它看起来能够保持自己的接收池。由于该项目似乎不再被维护,我采用了上述方法。