Chef infra 将资源分配给厨师配方中的变量时会发生什么?

Chef infra 将资源分配给厨师配方中的变量时会发生什么?,chef-infra,lwrp,Chef Infra,Lwrp,我正在查看github上的,我看到以下内容: install = consul_installation node['consul']['version'] do |r| if node['consul']['installation'] node['consul']['installation'].each_pair { |k, v| r.send(k, v) } end end 当它将资源分配给安装变量时,它是否执行过资源/提供程序?也许它会马上执行?与编译和聚合为单独阶段的两阶

我正在查看github上的,我看到以下内容:

install = consul_installation node['consul']['version'] do |r|
 if node['consul']['installation']
   node['consul']['installation'].each_pair { |k, v| r.send(k, v) }
 end
end

当它将资源分配给安装变量时,它是否执行过资源/提供程序?也许它会马上执行?与编译和聚合为单独阶段的两阶段过程不同?

它不会改变任何东西,DSL方法总是有一个返回值,通常您会忽略它,因此它会被丢弃。具体地说,每个DSL方法都返回已编译的资源对象,在本例中是
ConsultInstallation
类的实例


在本例中使用这种方法是因为我的一个模式用于对厨师资源进行依赖项反转/注入。稍后,您可以看到
install.consu_程序
,该程序正在执行反转命令查找,因为
consu_安装
资源有多个底层提供程序,这些提供程序在运行时可能会有所不同。

它不会改变任何内容,DSL方法总是有一个返回值,通常您会忽略它,这样它就会被丢弃。具体地说,每个DSL方法都返回已编译的资源对象,在本例中是
ConsultInstallation
类的实例

在本例中使用这种方法是因为我的一个模式用于对厨师资源进行依赖项反转/注入。稍后,您可以看到
install.consu_程序
,该程序正在执行反转命令查找,因为
consu_安装
资源有多个底层提供程序,这些提供程序在运行时可能会有所不同