我正在尝试向自定义before_symlink
Chef配方添加deploy
回调,以便在AWS OpsWorks上使用。我正在使用Chef 11设置,因此亚马逊自己的配件可以处理95%的情况。
我收到了Recipe Compile Error
:
NoMethodError
-------------
No resource or method named `before_symlink' for `Chef::Recipe "deploy"'
我还在学习厨师,所以我不清楚是什么导致了这一点。我在自定义食谱的开头调用了include_recipe 'deploy'
,Amazon’s own custom deploy recipe似乎也有类似的效果。
这是我的食谱:
include_recipe 'deploy'
node[:deploy].each do |application, deploy|
if (deploy[:application_type] != 'rails') || (application != 'backscratchers')
Chef::Log.debug("Skipping deploy::rails application #{application} as it is not a Rails app")
next
end
before_symlink do
directory "#{release_path}/tmp" do
mode 0770
end
end
end
答案 0 :(得分:1)
before_symlink
块必须实际进入deploy
或deploy_revision
配方。它与亚马逊的deploy
食谱/食谱无关。
尽管如此,我不建议再使用deploy
资源,因为它对于大多数需求来说过于复杂。查看https://github.com/poise/application_examples/以获取更多Chef样式应用程序部署的示例。