シェフのレシピでグローバル変数を定義することは可能ですか?&シェフのリソースで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のような何かをすることができます、グローバルキーワード&と宣言して値を変更します。ここに似ていますか?
コードのインデントを読み取り可能にしてください。 – coderanger
@coderangerは言った、そしてまたあなたは 'EOH'の前に特別な' end'を持っているようだ。 – engineersmnky