OpsWorks(Chef)before_symlink回调无法正常工作

时间:2016-03-07 15:36:53

标签: chef aws-opsworks

我正在尝试向自定义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

1 个答案:

答案 0 :(得分:1)

before_symlink块必须实际进入deploydeploy_revision配方。它与亚马逊的deploy食谱/食谱无关。

尽管如此,我不建议再使用deploy资源,因为它对于大多数需求来说过于复杂。查看https://github.com/poise/application_examples/以获取更多Chef样式应用程序部署的示例。