[英]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.