во-первых, как правило, я бы посоветовал вам использовать ресурсы chef и не иметь код ruby вне этих ресурсов (поскольку блок ruby вне ресурса chef будет выполняться на этапе компиляции, а не на этапе конвергенциииз chef-client run . конечно, есть некоторые исключения из этого правила).например, поместите
Dir.chdir("#{Chef::Config[:file_cache_path]}")
Dir.glob("test-*.msi").each { |file| File.delete(file)}
в ресурс ruby_block
.
, относящийся к вашему вопросу, вы можете назначить атрибут узла в ruby_block
и использовать тот же атрибут узла при необходимости,например:
ruby_block 'foo' do
block do
node.default['files'] = Dir.glob("test-*.msi")
end
end
execute 'baz' do
command "echo #{node['files']}"
end