Chef infra 如何在other中添加相同的食谱,以及如何从包含的食谱中访问变量

Chef infra 如何在other中添加相同的食谱,以及如何从包含的食谱中访问变量,chef-infra,chef-recipe,test-kitchen,Chef Infra,Chef Recipe,Test Kitchen,如何在其他食谱中添加相同的食谱 include_recipe "localcookbook::test" 在我包含的地方,测试配方变量没有传递,局部变量在包含中不可见,因为这会使它们不是局部变量。或者更一般地说,因为Ruby不是这样工作的。为了实现您想要的,您需要使用cookbook的帮助程序和库。首先,您可以查看这些资源中的库 这是助手的基本示例 在cookbook文件夹中,您需要创建libraries/helpers.rb文件 module MyCookbook module H

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

  include_recipe  "localcookbook::test"

在我包含的地方,测试配方变量没有传递,局部变量在包含中不可见,因为这会使它们不是局部变量。或者更一般地说,因为Ruby不是这样工作的。

为了实现您想要的,您需要使用cookbook的帮助程序和库。首先,您可以查看这些资源中的库

这是助手的基本示例

在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中放置
设置状态值(“状态值”)
在B
中获取状态值
在B配方中设置的是从配方中设置的。

可能重复的方法需要声明全局变量,好的,请帮助我。知道我问的是一般问题我是Devops的初学者