是否有可能在厨师食谱中将某个变量定义为全局。就像我宣布&更改Chef资源中的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的事情,使用全局关键字&amp;修改值。这里有类似的吗?
答案 0 :(得分:0)
ruby
资源不在同一进程中运行,它作为子进程运行ruby -E
。你想要的是ruby_block
资源,它是无关的。