繁体   English   中英

如何在ruby_block中访问节点属性和配方变量

[英]How to access node attributes and recipe variables in ruby_block

厨师开发的新手:),来自属性的变量值在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块中提取的值。

提前致谢。

您需要双引号。 Ruby中的单引号不支持#{foo}插值语法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM