我正在尝试从我的ruby脚本中删除以下bash命令:
nodes = "knife search 'chef_environment:#{env} AND recipe:#{microservice}' -i 2>&1 | tail -n 2"
node = %x[ #{nodes} ].split
node.each do |n|
puts n
end
并用以下内容替换它:
node = Chef::Knife.search("chef_environment:#{env} AND recipe:#{microservice}").split
这可能吗?是否有关于ruby中的Chef :: knife库以及如何使用它的文档?
答案 0 :(得分:0)
要访问厨师服务器,您可以尝试使用ridley gem,它也是Berkshelf使用的,因此通常是最新的。
用法示例可能是:
ridley = Ridley.from_chef_config('/path/to/knife.rb')
ridley.search(:node, "chef_environment:#{env} AND recipe:#{microservice}")
有关其选项的更详细说明,请参阅gem的文档。