Chef server API
Topics: Chef
Chef’s Server API can be called from Ruby with Chef::ServerAPI and a client key.
Ruby examples
require "chef/config"
require "chef/log"
require "chef/server_api"
chef_url = "https://1.2.3.4"
client_name = "foo"
client_key = "/home/user/foo.pem"
chef_api = Chef::ServerAPI.new(
chef_url,
{
client_name: client_name,
signing_key_filename: client_key
}
)
puts chef_api.get("users/foo")
rest = Chef::ServerAPI.new(
"https://chef.example.com/",
{
signing_key_filename: "/home/foo/.chef/foo.pem",
client_name: "foo"
}
)
cb = rest.get("/cookbooks")
versions = cb.transform_values { |d| d["versions"].first["version"] };
pp versions["freistilbox"]