我可以在 Chef 部署挂钩中包含配方吗?

我可以在 Chef 部署挂钩中包含配方吗?

这可能只是我做错了什么,但我似乎无法在 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 并让您的部署挂钩调用必要的资源。

相关内容