从Chef Recipes调用REST服务并保存API的输出,以便进一步处理

时间:2015-11-30 07:29:10

标签: chef chef-recipe

我想使用Chef配方为我的产品调用现成的REST API。因此,使用厨师将成为安装各种组件和设置的完全自动化。简而言之,需要一种方法来调用REST服务并将输出保存到某个地方。

网上没有很多可用的例子。因为我是新手,所以任何人都可以在如何实现这一目标或在某些地方进行调查。

谢谢, Ashish

2 个答案:

答案 0 :(得分:0)

它没有很好地记录,但您可以使用Chef的HTTP客户端类。查看https://coderanger.net/chef-tips/#4以获取基本用法示例。

答案 1 :(得分:0)

回答得很晚,但我希望它会对其他人有所帮助。 一个简单的示例就是使用GET方法调用api。

食谱/default.rb

template '/etc/response.txt' do
        owner "root"
        group "root"
        mode "0644"
        source "response.erb"
        variables({
                response:Chef::HTTP.new('https://www.metaweather.com/').get('/api/location/44418/',{'Accept'=> 'application/json', 'Content-Type'=>'application/json'})
        })
end

templates / response.erb

<%= @response %>

这将在/etc/response.txt中产生json响应。