chef-api
About
Description
A simple client providing access the chef server api, implemented in nodejs
Author
Norman Joyner - norman.joyner@gmail.com
Getting Started
Installation
npm install chef-api
Configuration
Simply require the chef-api module, instantiate a new object, and call the .config()
method to start accessing the Chef API.
The object passed to the .config()
method should be configured as follows:
var options = user_name: "myusername" // (required unless using 'client_name') a chef user client_name: "myclientname" // (required unless using 'user_name') a chef client key_path: "/Users/myusername/.chef/myusername.pem" // (required unless using 'key') path to private key key: "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" // (required unless using 'key_path') contents of private key organization: "myorganization" // (required unless using 'url') organization name for use with hosted chef url: "https://mychefserver.com/organizations/SHORT_ORGNAME" // (required unless using 'organization') url for use with local chef server ca: "-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----" // (optional) if this key is omitted, then the default CA chain will be used. If null, the client will operate unsafely and not validate the server's certificate, it set to a certificate list explicitly, that list will be used as the CA chain. timeout: 15000 // (optional) request timeout in ms chef;
You are now free to make API calls.
Examples
Example usage with hosted chef server, accessing API using a user's pem path:
var ChefApi = ;var chef = ; var options = user_name: "myusername" key_path: "/Users/myusername/.chef/myusername.pem" organization: "myorganization" chef; chef;
Example usage with private chef server, accessing API using a client's pem contents:
var ChefApi = ;var chef = ; var options = client_name: "myclientname" key: "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----" url: "https://mychefserver.com/organizations/default" chef; chef;
API Methods
chef-api provides a high level abstraction from the Chef Server API. Please consult the official docs at http://docs.chef.io/api_chef_server.html for API specifics.