2017-03-17 26 views

回答

0

局部变量在包含中不可见,因为这会使它们不是局部变量。或者更一般地说,因为这不是Ruby的工作方式。

+0

手段需要声明全局变量,好的帮助我。知道我是一般的问题,我是初学者的Devops – Udhay

0

为了实现你想要的,你需要使用cookbook的助手和库。作为一个开始,你可以检查这个资源的库https://blog.chef.io/2014/03/12/writing-libraries-in-chef-cookbooks/

这是带助手的基本示例。

在你的食谱文件夹,你需要创建库/ 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的厨师(sequently执行)。

在A中,你把set_state_value("state value")和B get_state_value,你有你从B食谱中的配方设置。

相关问题