簡體   English   中英

在廚師紅寶石中使用全局變量

[英]Using global variables in chef ruby

是否有可能在廚師食譜中將某些變量定義為全局變量。就像我在廚師資源中聲明和更改var一樣,后來我想在食譜代碼中使用此更改的值。

version=""
ruby 'extract_module' do
    #cwd ::File.dirname(C:\\chef\\cache)
    code <<-EOH
        require 'win32/registry'
        Win32::Registry::HKEY_LOCAL_MACHINE.open(
        'Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall') do |reg|
            reg.each_key do |key|
                k = reg.open(key)
                app = k["DisplayName"] rescue nil

                if app == "Qlik Sense 3.2"
                    version = k["DisplayVersion"] rescue nil
                    puts version
                end
            end
        end
    EOH
end

puts "#{version}"

此變量不在ruby資源外部打印。 我們可以做類似python的事情,用global關鍵字聲明並修改值。 這里有相似之處嗎?

ruby資源不在同一進程中運行,而是將ruby -E作為子進程運行。 您需要的是一個不相關的ruby_block資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM