【问题标题】:Rails application deployment using chef cookbook使用 Chef Cookbook 部署 Rails 应用程序
【发布时间】:2015-01-19 11:20:09
【问题描述】:

我正在尝试使用厨师食谱部署 Rails 应用程序,git

这是我用来从 github 克隆私有 repo 的代码示例。

git "/var/www/hello_app" do
  repository "git://github.com/MyUser/MyProject.git"
  reference "master"
  action "sync"
  user "gituser"
end

我关心的是如何运行 bundle update/bundle install 和 rake precompile。

同时启动独角兽网络服务器,我也检查了厨师文档的部署资源。

我正在探索其他方法来完成它,

请帮帮我

【问题讨论】:

    标签: ruby-on-rails git deployment vagrant chef-infra


    【解决方案1】:

    我会选择部署资源或应用程序说明书。在任何一种情况下,bundle install 都会进入你的钩子。我相信部署资源实际上具有precompile_command 的属性。

    【讨论】:

      【解决方案2】:

      我最好的办法是使用通知,但它并不坚如磐石(因为任何失败都会涉及修改应用程序目录,以便在下次运行时更新 git 资源)。

      类似:

      execute "bundle_install" do
       cwd "/var/www/hello_app"
       command "bundle install"
       action :nothing #To avoid executing at each run
      end
      
      git [....] do 
       [...]
       notifies :run,"execute[bundle_install]", :immediately
      end
      

      例如,每个执行可以依次通知另一个,最后一个可以通知服务重新启动。

      使用 application 食谱和 application_ruby 可能会有更好的机会(请参阅链接中的自述文件)。

      这些说明书也有部署前和部署后的钩子和重启命令钩子,它们 (IIRC) 对步骤失败具有弹性,如果一个失败可能会在下一次运行时重试。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多