这可能只是我做错了什么,但我似乎无法在 Chef / AWS OpsWorks 部署挂钩中使用自定义配方:
# before_symlink.rb
include_recipe 'supervisor'
OpsWorks 部署失败并出现以下错误:
NoMethodError
-------------
No resource or method named `include_recipe' for `Chef::Provider::Deploy::Timestamped ""'
我们正在使用 Chef 11.10。您知道为什么会发生这种情况吗?
更新:
我们正在使用这本食谱默认配方会安装 Supervisord,目前为止运行正常。我们在安装阶段运行它。
在部署钩子期间尝试使用supervisor_service
同一说明书中的资源时,会出现问题。此例中的错误消息是:
No resource or method named `supervisor_service' for
上面描述的第一个错误发生在尝试使用 包含配方时include_recipe
。
答案1
OpsWorks“部署”是 Chef 的自定义 AWS 插件,不支持全套 Chef 功能。
无论如何,安装 Supervisord 看起来不像是应该在部署时执行的事情——那应该是实例构建时操作,尽管您可能需要执行服务操作和部署时间,以便让您的食谱“依赖于”Supervisord 并让您的部署挂钩调用必要的资源。