我看到,如果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
對其他資源可見性有任何影響?