关于自定义LWRP声明的一些疑问

时间:2014-03-18 18:33:46

标签: chef chef-recipe chef-solo

我在做自定义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 个答案:

答案 0 :(得分:1)

您必须完成许多步骤才能创建自己的自定义资源(LWRP)。总之,它涉及在cookbook resources目录中创建文件,在providers目录中创建具有相同名称的文件。

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

资源名称为cookbook名称+没有rb扩展名的文件名。

有关详细信息,请参阅此处的精彩教程:http://dougireton.com/blog/2012/12/31/creating-an-lwrp/