Knife CloudFormation

A plugin for the knife command provided by Chef to interact with AWS CloudFormation.

Compatibility

This plugin now provides support for other cloud orchestration APIs as well:

  • OpenStack
  • Rackspace

Configuration

The easiest way to configure the plugin is via the knife.rb file. Credentials are the only configuration requirement, and the Hash provided is proxied to Miasma:

# .chef/knife.rb

knife[:cloudformation][:credentials] = {
  :aws_access_key_id => ENV['AWS_ACCESS_KEY_ID'],
  :aws_secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'],
  :aws_region => ENV['AWS_REGION']
}

If are using Rackspace:

# .chef/knife.rb

knife[:cloudformation][:credentials] = {
  :rackspace_username => ENV['RACKSPACE_USERNAME'],
  :rackspace_api_key => ENV['RACKSPACE_API_KEY'],
  :rackspace_region => ENV['RACKSPACE_REGION']
}

If are using OpenStack:

# .chef/knife.rb

knife[:cloudformation][:credentials] = {
  :open_stack_username => ENV['OPENSTACK_USERNAME'],
  :open_stack_password => ENV['OPENSTACK_PASSWORD'],
  :open_stack_identity_url => ENV['OPENSTACK_IDENTITY_URL'],
  :open_stack_tenant_name => ENV['OPENSTACK_TENANT']
}

Commands

  • knife cloudformation list
  • knife cloudformation create
  • knife cloudformation update
  • knife cloudformation destroy
  • knife cloudformation events
  • knife cloudformation describe
  • knife cloudformation inspect
  • knife cloudformation validate

Info