将自定义资源参数传递给Chef中的自定义资源

时间:2017-05-31 22:24:28

标签: ruby resources chef

首先,我不是Ruby或Chef的专家。我有一个自定义资源,它接受我试图传递给另一个自定义资源的参数。它不起作用。该参数未在第二个资源上设置,因此第二个资源仅查看参数的默认值。

# cookbook/recipes/default/caller.rb
# Call first_resource and pass 2 as the index
first_resource "Pass in 2" do
  index 2
end

# cookbook/resources/first_resource.rb
resource_name :first_resource
property :index, Integer, default: 1

action :execute do
  # call my second custom resource and pass index to it
  second_resource "Call second resource with #{index}" do
    index index
  end
end

# cookbook/resources/second_resource.rb
resource_name :second_resource
property :index, Integer, 1
action :execute do
  raise "The index is #{index}"
end

本质上,我的食谱“caller.rb”需要将变量(索引)传递给第一个资源,而第一个资源又需要将所述变量传递给第二个资源。我遇到的问题是第二个资源总是得到默认值1,即使我正在传入2.我认为当Chef完成编译阶段时,参数的second_resource值会被设置?

我无法将配方中的值一直传递到第二个资源。

我在文档中读过load_current_value但是当我在动作之外使用它时,我无法调用任何资源。我也尝试在动作中使用load_current_value,但后来我得到NoMethodError

帮助!

0 个答案:

没有答案