我希望有人可以帮助我解决这个问题,我正在编写一个 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
谢谢!!