【发布时间】:2017-02-05 12:04:06
【问题描述】:
新厨师开发:),属性的变量值在 ruby 块中似乎不可见。
installer = node['jdk']['installer']
ruby_block "tar-folder-name" do
block do
command = 'tar -tvf /tmp/#{installer}.tar.gz | head -1 | awk \'{print $NF}\''
command_out = shell_out(command)
node.default['tar_folder'] = command_out.stdout
end
action :run
end
当我硬编码变量值时它可以工作:
command = 'tar -tvf /tmp/jdk-7u85-linux-x64.tar.gz | head -1 | awk \'{print $NF}\''
如何使用 ruby_block 中的节点属性? 此外,如何使用来自 ruby 块外部的 ruby 块的变量值?有关信息,当我尝试使用 node.tar_folder 时,它没有在 ruby 块中提取的值。
提前致谢。
【问题讨论】:
-
attributes/default.rb文件中设置的属性为default['jdk']['installer'] = 'jdk-7u85-linux-x64'
标签: ruby chef-infra chef-recipe