ChefAPI Chef Tool
ChefAPI is a dependency-minimal Ruby client for interacting with a Chef Server. It adopts many patterns and principles from Rails
Install & Usage Instructions
Install via Rubygems:
$ gem install chef-api
or add it to your Gemfile if you are using Bundler:
gem 'chef-api', '~> 0.1'
In your library or project, you will likely want to include the
This will give you "Rails-like" access to the top-level Chef resources like:
If you choose not to include the module, you will need to specify the full module path to access resources:
Create a connection
Before you can make a request, you must give the ChefAPI your connection information and credentials.
ChefAPI.configure do |config| # The endpoint for the Chef Server. This can be an Open Source Chef Server, # Hosted Chef Server, or Enterprise Chef Server. config.endpoint = 'https://api.opscode.com/organizations/meats' # ChefAPI will try to determine if you are running on an Enterprise Chef # Server or Open Source Chef depending on the URL you provide for the # +endpoint+ attribute. However, it may be incorrect. If is seems like the # generated schema does not match the response from the server, it is # possible this value was calculated incorrectly. Thus, you should set it # manually. Possible values are +:enterprise+ and +:open_source+. config.flavor = :enterprise # The client and key must also be specified (unless you are running Chef Zero # in no-authentication mode). The +key+ attribute may be the raw private key, # the path to the private key on disk, or an +OpenSSLL::PKey+ object. config.client = 'bacon' config.key = '~/.chef/bacon.pem' # If you are running your own Chef Server with a custom SSL certificate, you # will need to specify the path to a pem file with your custom certificates # and ChefAPI will wire everything up correctly. (NOTE: it must be a valid # PEM file). config.ssl_pem_file = '/path/to/my.pem' # If you would like to be vulnerable to MITM attacks, you can also turn off # SSL verification. Despite what Internet blog posts may suggest, you should # exhaust other methods before disabling SSL verification. ChefAPI will emit # a warning message for every request issued with SSL verification disabled. config.ssl_verify = false # If you are behind a proxy, Chef API can run requests through the proxy as # well. Just set the following configuration parameters as needed. config.proxy_username = 'user' config.proxy_password = 'password' config.proxy_address = 'my.proxy.server' # or 10.0.0.50 config.proxy_port = '8080' end