2016-06-07 3 views
0

У меня есть команда, которая должны выполняться на (с помощью ножа) Unix/Win ENV в:Не удалось получить вывод команды из рецепта повара

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

эта команда имеет выход, который должен быть проанализирован для некоторого ключевого слова внутри ,

Я читал об open3 и т. Д., Но не смог реализовать.

Я по достоинству оценю пример.

Заранее спасибо.

ответ

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 
+0

Для других, которые находят это, Mixin уже имеющихся ресурсов в последних версиях Chef, и вы должны _never_ сделать глобальные изменения DSL в качестве ресурса, как это. – coderanger

Смежные вопросы