Ruby-on-Rails

將 Rails 應用程序部署到 OpsWorks 時出現錯誤“聲明配置資源時必須提供名稱”

  • April 5, 2015

將 rails 應用程序從引擎場移動到 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 文件中。我不知道還有什麼要從那裡檢查的。

以前有沒有人見過這個問題,或者任何人都可以就我如何確定這裡出了什麼問題提供任何想法?

問題是舊的引擎場部署腳本假定的參數與 opsworks 在其部署腳本中使用的參數不同。解決方案是重寫部署腳本,刪除引擎場包裝器程式碼。

引用自:https://serverfault.com/questions/679463