我是Capistrano的新手,我想知道为我的项目管理Capistrano配置的最佳方法。Capistrano配置管理的最佳实践?
具体来说,config/deploy.rb
应该与我的项目的源代码控制相关?我应该存储一个没有特定配置信息的文件模板吗?或者这个配置应该在团队中共享的自己的回购中?
我是Capistrano的新手,我想知道为我的项目管理Capistrano配置的最佳方法。Capistrano配置管理的最佳实践?
具体来说,config/deploy.rb
应该与我的项目的源代码控制相关?我应该存储一个没有特定配置信息的文件模板吗?或者这个配置应该在团队中共享的自己的回购中?
当我开始越来越多地使用Capistrano时,我也想知道这一点。我认为我们大多数人都同意跟踪运行时配置信息分开功能代码对吗?那么对于部署配置,不应该是这样吗?
我想你可以让你的./deploy/
文件夹为SCM子模块。你可以做一个耙子任务,生成 Capfile到你的工作副本中,这样你就可以在应用程序之外保留最终的密码和内容...甚至可能有一个这样的宝石。
但是我选择的替代方法:
我具有约十个不同的应用,穿过其中大部分Capistrano的变量的可以遵循这样的图案作为set(:deploy_to) {"#{base_dir}/#{environment}/#{application}"}
,并且同样为源代码库的路径。
我解除了所有有关从各个应用程序部署的知识,而是将它们放在一个单独的通用“部署”项目中。现在,我可以检查的项目走出去,去:
cap [some application] [environment] [deploy task]
我更关注比周围到处散布Capfiles多了很多这种模式/分离。
这是一个很好的问题。
我最终还将所有与deploy.rb相关的东西放入了部署项目中,并从应用程序项目中将其链接到该项目中。当时正在研究Webistrano,因为它看起来能够保持自己的接收池。由于该项目似乎不再被维护,我采用了上述方法。