我在厨师食谱食谱中写了以下模板
template '/etc/app.conf' do
variables({
my_id: Chef::HTTP.new(https://example.com).get('/',{header})
})
end
我的erb文件是
Output is : <%= @my_id %>
我实际上想要执行一些ruby操作(主要是过滤掉并计算my_id的组件),然后将这些值(每个组件的数量)传递回模板并进一步使用它。什么应该是erb配置或什么需要在模板块中添加?
(这里,my_id实际上有子网,我想得到那些子网及其值的计数,以便我可以进一步使用它来执行另一个http请求并获取每个子网中的节点。)
答案 0 :(得分:0)
对Chef Cookbooks不太了解,但你可以在ERB模板中写一些ruby。虽然这不是我认为最干净的解决方案。
有关如何在ERB中嵌入代码的信息,请参阅here
答案 1 :(得分:0)
你粘贴的东西(希望你总结,因为你错过了那里的一堆报价)只是一个快速提示。要获取要使用Chef::HTTP::SimpleJSON
的JSON数据,将为您和诸如此类别的内容进行解析。
variables data: Chef::HTTP::SimpleJSON.new('https://whatever.com/').get('/foo')