2014-03-18 28 views
1

我正在做我的定制LWRP。但是我对它的实现有疑问。关于定制LWRP声明的一些怀疑

我检查了蓝图,我看到了。

def load_current_resource 
    @current_resource = Chef::Resource::BluepillService.new(new_resource.name) 
    @current_resource.service_name(new_resource.service_name) 

    Chef::Log.debug("Checking status of service #{new_resource.service_name}") 

    determine_current_status! 

    @current_resource 
end 

我在其他人看到食谱,我想做这样的事情。

def load_current_resource 
    @current_resource = Chef::Resource::MyCustomLWRP.new(new_resource.name) 
    @current_resource 
end 

但是我找不到Chef :: Resource :: MyCustomLWRP的定义。

我想这样做的目的是创建一个幂等资源。

回答

1

您需要经过许多步骤来创建自己的自定义资源(LWRP)。总之,它涉及在烹饪书resources目录中创建一个文件,在providers目录中创建一个名称相同的文件。

您在resources目录中创建的文件定义(除其他之外)您的自定义资源可以接受的操作和属性。您在providers目录中创建的文件提供了在资源文件中指定的每个操作的实现。

资源的名称将是食谱名称+没有rb扩展名的文件名。

欲了解更多详情,这里有一个伟大的教程:http://dougireton.com/blog/2012/12/31/creating-an-lwrp/