【发布时间】:2015-12-06 09:20:04
【问题描述】:
我看到如果在启用use_inline_resources 的情况下在 LWRP 中创建 service['somename'],那么此资源在其他上下文中不可见 - 如下所述:Notify service defined in included LWRP recipe
我遇到service['somename'] 在普通配方中定义的情况(不在 LWRP 提供程序中)。然后 LWRP 提供者正试图通知这个服务。在我的示例中,服务是 Web 服务器,LWRP 负责在此 Web 服务器内创建虚拟主机。
如果我在该提供程序中使用use_inline_resources,则提供程序内的代码看不到全局范围内定义的资源(在普通配方中)。带有定义此服务的食谱的食谱在 metadata.rb 中添加为 depends cookbookname。
所以问题是:use_inline_resources 的实际工作情况如何 - 我不清楚官方解释 (http://docs.getchef.com/lwrp_common_inline_compile.html)。这个解释与我看到的相反 - 它说:
为了确保嵌入的轻量级资源可以通知 顶级资源在文件顶部添加
use_inline_resources
在我的情况下,我有食谱:
include_recipe "web-server::install" # 创建服务['web-server']
this_cookbook_my_lwrp "sites" do # 这个 LWRP 正在尝试通知服务['web-server']
行动:创建
结束
所以这个 LWRP 是在这个食谱中定义的。它的行为是这样的:
- 如果 LWRP 包含
use_inline_resources,则看不到服务['web-server'] - 如果 LWRP 不包含
use_inline_resources,它可以看到 service['web-server']
此外,定义use_inline_resources 是否会对资源可见性以外的任何其他方面产生影响?
【问题讨论】:
标签: chef-infra