将 Rails 应用程序部署到 OpsWorks 时出现错误“声明配置资源时必须提供名称”

将 Rails 应用程序部署到 OpsWorks 时出现错误“声明配置资源时必须提供名称”

将 Rails 应用程序从 Engine Yard 移动到 OpsWorks 时,出现以下错误:

Error executing action `deploy` on resource 'deploy[{{ app path }}]'
you must supply a name when declaring a config resouce

当将 rails 应用程序部署到 ops 时,错误继续显示“

我已确认我的“自定义 json”正在database.yml正确填充文件。

进一步详细说明:

Resource Declaration:
deploy deploy[:deploy_to] do
  provider Chef::Provider::Deploy.const_get(deploy[:chef_provider])
  ..

有趣的是,在下面的转储中,有一个params列表,其中包括

:name => nil

这似乎是问题所在。我检查了 OpsWorks 中的所有表单,每个名称字段都已填充。除此之外,自定义 JSON 似乎是正确的,因为它正在填充到 database.yml 文件中。我不确定从那里还要检查什么。

有人之前见过这个问题吗?或者有人能提供一些关于我如何确定这里出了什么问题的想法吗?

答案1

问题是旧的 Engine Yard 部署脚本采用的参数与 opsworks 在其部署脚本中使用的参数不同。解决方案是重写部署脚本,删除 Engine Yard 包装器代码。

相关内容