我看到,如果service['somename']
被内部LWRP创建了use_inline_resources
启用,那么这个资源不是在其他情况下明显的 - 这里说明:Notify service defined in included LWRP recipe厨师从LWRP提供商代码内通知全球服务
我有情况service['somename']
在正常配方中定义(不在LWRP提供者中)。然后LWRP提供商正在尝试通知此服务。在我的示例中,服务是Web服务器,LWRP负责在此Web服务器内创建虚拟主机。
如果我在该提供程序中使用use_inline_resources
,提供程序内部的代码看不到全局范围(在正常配方中)定义的资源。食谱定义此服务的配方添加为depends cookbookname
在metadata.rb
。
所以问题是:实际上是怎样工作的use_inline_resources
-官方解释对我来说还不清楚(http://docs.getchef.com/lwrp_common_inline_compile.html)。这个解释说,相反我看到的 - 它说:
为了确保嵌入轻量资源可以通知 顶级资源添加
use_inline_resources
到文件
的顶部。在我的情况我有秘方:
include_recipe “网络服务器安装::” #创建服务[ 'Web服务器']
this_cookbook_my_ lwrp“地王”做#这LWRP试图通知服务[“Web服务器”]
行动:建立
末
所以这LWRP在这个食谱中定义。而且它的行为是这样的:
- 如果LWRP包含
use_inline_resources
,它无法看到服务[ 'Web服务器'] - 如果LWRP不包含
use_inline_resources
,就可以看到服务[ 'Web服务器']
此外,是否定义use_inline_resources
对其他资源可见性有任何影响?