【问题标题】:What happens when you assign a resource to a variable in a Chef recipe?当您将资源分配给 Chef 配方中的变量时会发生什么?
【发布时间】:2016-03-24 14:32:46
【问题描述】:

我正在查看 github 上的 johnbellone/consul-cookbook 并看到以下内容:

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

当它将资源分配给安装变量时,它是否曾经执行过资源/提供者?也许它会立即执行它?而不是将编译和收敛的两阶段过程作为单独的阶段进行?

【问题讨论】:

    标签: chef-infra lwrp


    【解决方案1】:

    它不会改变任何东西,DSL 方法总是有一个返回值,只是通常你会忽略它,所以它会被丢弃。具体来说,每个 DSL 方法都返回编译后的资源对象,在本例中是 ConsulInstallation 类的实例。

    在这种情况下使用它是因为我的一种模式用于对 Chef 资源进行依赖反转/注入。稍后您可以看到 install.consul_program 正在执行反转命令查找,因为 consul_installation 资源具有多个在运行时可能会发生变化的底层提供程序。

    【讨论】:

      猜你喜欢
      • 2017-09-15
      • 1970-01-01
      • 2012-09-10
      • 2016-01-10
      • 2017-11-23
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      相关资源
      最近更新 更多