Skip to content

Repository files navigation

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:

varoptions={user_name: "myusername",// (required unless using 'client_name') a chef userclient_name: "myclientname",// (required unless using 'user_name') a chef clientkey_path: "/Users/myusername/.chef/myusername.pem",// (required unless using 'key') path to private keykey: "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----",// (required unless using 'key_path') contents of private keyorganization: "myorganization",// (required unless using 'url') organization name for use with hosted chefurl: "https://mychefserver.com/organizations/SHORT_ORGNAME",// (required unless using 'organization') url for use with local chef serverca: "-----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.config(options);

You are now free to make API calls.

###Examples

Example usage with hosted chef server, accessing API using a user's pem path:

varChefApi=require("chef-api");varchef=newChefApi();varoptions={user_name: "myusername",key_path: "/Users/myusername/.chef/myusername.pem",organization: "myorganization"}chef.config(options);chef.getNodes(function(err,res){if(err)throwerr;console.log(res);});

Example usage with private chef server, accessing API using a client's pem contents:

varChefApi=require("chef-api");varchef=newChefApi();varoptions={client_name: "myclientname",key: "-----BEGIN RSA PRIVATE KEY-----\n...\n-----END RSA PRIVATE KEY-----",url: "https://mychefserver.com/organizations/default"}chef.config(options);chef.getNode("mynodes.fqdn",function(err,res){if(err)throwerr;console.log(res);});

###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.

About

A simple client providing access the chef server api, implemented in nodejs.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages