如何在其他菜单中添加相同的食谱食谱以及如何从包含的食谱中访问变量

时间:2017-03-17 20:58:42

标签: chef chef-recipe test-kitchen

如何在其他食谱中添加相同的烹饪书食谱

  include_recipe  "localcookbook::test"

我已经包含了测试配方变量没有通过

2 个答案:

答案 0 :(得分:0)

在include中看不到局部变量,因为这会使它们不是局部变量。或者更普遍的是因为这不是Ruby的工作方式。

答案 1 :(得分:0)

为了达到你想要的效果,你需要使用cookbook的助手和库。首先,您可以查看库https://blog.chef.io/2014/03/12/writing-libraries-in-chef-cookbooks/

的此资源

这是助手的基本示例。

在cookbook文件夹中,您需要创建libraries / helpers.rb文件

module MyCookbook
  module Helpers
    @@state_value ||= ''

    def set_state_value(v)
      @@state_value = v
      @@state_value
    end

    def get_state_value
      @@state_value
    end
  end
end

Chef::Recipe.send(:include, MyCookbook::Helpers)

让我们说你有两个食谱 - A和B(经常执行)在厨师。

在A中,您将set_state_value("state value")放在B get_state_value中,并且您拥有了从B配方中的食谱中设置的内容。