为什么我不能在我的厨师食谱中加入Win32?

时间:2015-03-29 15:17:47

标签: chef

我的厨师食谱开头的代码:

require "win32/service"
include Win32

导致以下错误:

No resource or method named `include' for `Chef::Recipe "install"'

这适用于红宝石,为什么它不适用于厨师食谱?

谢谢!

1 个答案:

答案 0 :(得分:1)

以下代码可以使用(在没有include / require的配方中),

target_service = "FreeSSHDService" if ::Win32::Service.exists?(target_service) Chef::Log.info target_service + "Found!" else Chef::Log.info target_service + "NOT Found!" end

leading ::告诉它不要查看Chef命名空间。

包含不起作用的原因,

在普通的非Chef Ruby中,您可以使用include语法在自己的类中包含其他类;例如,包括Opscode :: OpenSSL :: Password。但是,在配方中使用时,配方编译器将尝试为“包含”类型的资源查找提供程序,但它将失败。