【发布时间】:2020-06-25 19:15:43
【问题描述】:
我想从这个 Chef 默认属性文件中读出一些 url 和版本号:
https://github.com/aws/aws-parallelcluster-cookbook/blob/develop/attributes/default.rb
我知道我可以使用grep、sed、awk 解决方案,但这些解决方案通常更脆弱,我无法控制此文件。我只是希望能够下载它并解析出我需要的值。
一个示例解决方案可以将 default.rb 作为 JSON 打印到标准输出并使用 jq 解析它,或者创建一个 ruby 脚本来打印它。
提前致谢!
更新:
我想要一种从 default.rb 文件中读取数据的方法,即我想从 default.rb 中获取版本数据/url,并以编程方式将其用于其他用途。
能够做到就好了
require('default.rb')
puts default['cfncluster']['nvidia']['driver_version']
这会将第 68 行的值打印到标准输出,然后我可以用它做任何我想做的事情。以上是我对我们 ruby 的失败尝试。此方法失败,它表示未定义默认值。我不是 ruby 人,也许有一种方法可以在不收到错误消息的情况下加载它。
感谢任何建议。如果您可以使用一些厨师 cli 将所有内容打印为 JSON,那也很好。我可以从中解析出我需要的东西。
【问题讨论】:
-
您想打印标准输出作为说明书执行的一部分吗?
标签: ruby chef-infra devops chef-recipe