gpt4 book ai didi

ruby - 无需 Chef 或 Knife 从 metadata.rb 生成 metadata.json

转载 作者:太空宇宙 更新时间:2023-11-03 16:33:57 28 4
gpt4 key购买 nike

我正在开发一个将与 Chef 交互的程序。我想阅读元数据以查找依赖项以及名称等其他信息,但不应将 Chef 安装在运行它的机器上。我认为最好的方法是将 metadata.rb 翻译成 metadata.json 并阅读它。

实际上,我正在使用基于算法的 on this 逐行阅读每个 Recipe 但我认为像 Chef 那样使用元数据更正确。此外,它有这样的表达式问题:

node['apache']['default_modules'].each do |mod|
recipe_name = mod =~ /^mod_/ ? mod : "mod_#{mod}"
include_recipe "apache2::#{recipe_name}"
end

读取角色的 run_list 时遇到同样的问题,当它有多行时。当然,如果我能将它翻译成 json 文件,那就更好了。有办法做到这一点吗?

最佳答案

它使用ruby instance_eval 方法从cookbook 中解析metadata.rb,所以关键是metadata.rb 的规范。在 Chef::Cookbook::Metadata 中定义.

它是提供许多方法的ruby 类。所以你可以调整你自己的程序使用最少的方法集,除了属性访问器如 namemaintainerdepends()recipe (名称,描述)

关于ruby - 无需 Chef 或 Knife 从 metadata.rb 生成 metadata.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10759586/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com