0
我希望有人可以帮助我解决这个问题,我写了一个ruby脚本,我遇到了问题。首先,大图片:Ruby - MCollective:如何将命令的输出转换为ruby变量(或对象)
当我从CLI运行以下命令:
$ mco rpc puppet last_run_summary
我得到这样的输出:
epuppet01.example.com
Changed Resources: 0
Config Retrieval Time: 1.21247005462646
Config Version: 1377176819
Failed Resources: 1
Last Run: 1377241107
Out of Sync Resources: 1
Since Last Run: 195
Summary: {"events"=>{"total"=>1, "success"=>0, "failure"=>1},
"resources"=>
{"scheduled"=>0,
"total"=>8,
"skipped"=>7,
"out_of_sync"=>1,
"failed"=>1,
"changed"=>0,
"failed_to_restart"=>0,
"restarted"=>0},
"changes"=>{"total"=>0},
"version"=>{"config"=>1377176819, "puppet"=>"3.1.1"},
"time"=>
{"config_retrieval"=>1.21247005462646,
"total"=>1.85353105462646,
"last_run"=>1377241107,
"package"=>0.641061}}
Total Resources: 8
Total Time: 1.85353105462646
Type Distribution: {"Package"=>1}
我要的是重定向/获取命令的输出进入一些变量/对象。具体而言,我想从摘要中获取“失败的资源”部分或“失败”值。
任何想法如何能做到这一点?
的代码看起来象迄今:
def runSingle
cmd = []
cmd.push(which("mco", ["/usr/bin", "/opt/puppet/bin"]))
shell_command(cmd + ["rpc", "puppet", " last_run_summary", "-I"] + shell_escaped_nodes)
end
谢谢!
太棒了!非常感谢! – MrTeleBird