扩展Chef-IIS池LWRP
我想扩展Chef-IIS池LWRP(),希望有人能帮我弄清楚语法 这就是我所处的位置:扩展Chef-IIS池LWRP,iis,chef-infra,chef-recipe,Iis,Chef Infra,Chef Recipe,我想扩展Chef-IIS池LWRP(),希望有人能帮我弄清楚语法 这就是我所处的位置: 我创建了一本新的食谱,然后引用了IIS食谱, 之后,我在我的libraries文件夹中创建了此文件: # Located At: myCookbook/libraries/my_iis_pool.rb: ::Chef::Recipe.send(:include, Opscode::IIS) class Chef class Resource::MyPool < Chef::Resource::II
我创建了一本新的食谱,然后引用了IIS食谱, 之后,我在我的libraries文件夹中创建了此文件:
# Located At: myCookbook/libraries/my_iis_pool.rb:
::Chef::Recipe.send(:include, Opscode::IIS)
class Chef
class Resource::MyPool < Chef::Resource::IIS::Pool
# Some Magic Happens
end
end
我似乎无法正确使用class Resource::MyPool < Chef::ResourceResolver.resolve(:iis_pool)
class Resource::MyPool
这会产生此错误:TypeError:超类必须是类(给定NilClass) 任何帮助都将不胜感激 谢谢,
不幸的是,像这样直接扩展基于DSL的定制资源并不是一个好方法。最好的方法是创建一个新的自定义资源,在内部使用
iis\u pool
,有点像包装器模式。不过,这只允许您在现有资源代码之前或之后进行操作,如果这还不够的话,您可能需要深入研究一些更令人兴奋的元编程,比如edit\u resource
API或在配方文件中声明类。不幸的是,没有一种好方法可以直接扩展这样的基于DSL的自定义资源。最好的方法是创建一个新的自定义资源,在内部使用iis\u pool
,有点像包装器模式。这只允许您在现有资源代码之前或之后进行操作,如果这还不够,您可能需要深入研究一些更令人兴奋的元编程,如edit\u resource
api或在配方文件中声明类
class Resource::MyPool < Chef::ResourceResolver.resolve(:iis_pool)