我正在开发一个与 Chef 交互的程序。我想阅读元数据以查找依赖项以及名称等其他信息,但不应该将 Chef 安装在运行它的机器上。我认为最好的方法是将 metadata.rb 转换为 metadata.json 并阅读它。
实际上,我正在使用基于此的算法逐行阅读每个食谱,但我认为像 Chef 那样使用元数据更正确。此外,它在以下表达式方面存在问题:
node['apache']['default_modules'].each do |mod|
recipe_name = mod =~ /^mod_/ ? mod : "mod_#{mod}"
include_recipe "apache2::#{recipe_name}"
end
当角色的 run_list 超过一行时,读取角色的 run_list 时出现同样的问题。当然,如果我能把它翻译成 json 文件会好得多。有没有办法做到这一点?