【问题标题】:Unable to get command output from chef recipe无法从厨师食谱中获取命令输出
【发布时间】:2016-10-07 10:27:09
【问题描述】:

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

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

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

我已经阅读了有关 open3 等的信息。但无法实施。

我会欣赏一个例子。

提前致谢。

【问题讨论】:

    标签: ruby chef-infra recipe


    【解决方案1】:

    我找到了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
    

    【讨论】:

    • 对于发现此问题的其他人,该 mixin 已在 Chef 最新版本的资源中可用,您应该永远在这样的资源中进行全局 DSL 更改。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多