无法从厨师食谱中获取命令输出

时间:2016-06-07 13:24:53

标签: ruby chef recipe

我有一个需要在Unix / win Env上运行的命令(使用刀):

execute "smart_table" do
  command "su -  #{username} -c ' myutils -PATH  #{file_name} -OVERWRITE '" 
  action :run
end

这个命令有一个输出,应该在里面解析一些关键字。

我读过open3等但无法实现。

我将欣赏一个例子。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我找到了Mixin::shellout的方式:

ruby_block "smart_table" do
  block do
    Chef::Resource::RubyBlock.send(:include, Chef::Mixin::ShellOut)      
    command = "su -  #{username} -c ' myutils -PATH  #{file_name} -OVERWRITE '" 
    command_out = shell_out(command)
    p command_out.stdout
  end
  action :create
end