Boto is a python AWS client library.
Using boto with heat
The boto cloudformation API can be used to interface with the heat cloudformation compatible orchestration API (heat-api-cfn)
You use the boto API directly, or make use of the heat-boto tool, which supports identical usage to the existing heat cli tool (note the output format is a bit different..)
yum install python-boto
Note there are currently some restrictions on which boto versions will work:
- must be >= 2.4.0 (because we need https://github.com/boto/boto/pull/742) - very recent versions break due to an AWS API version bump (ref https://bugs.launchpad.net/heat/+bug/1122472) - Version 2.5.2 (included in F17) is known to work, so it is suggested to install this version via pip if your distribution does not provide a suitable version
Boto configuration file(s)
You need a /etc/boto.cfg file (or per-user ~/.boto), which looks something like this (note the AWS keys are as returned from keystone ec2-credentials-list):
[Credentials] aws_access_key_id = <key> aws_secret_access_key = <secret_key> [Boto] debug = 0 is_secure = 0 # Set this to 1 if you want https cfn_region_name = heat cfn_region_endpoint = 127.0.0.1 cloudwatch_region_name = heat cloudwatch_region_endpoint = 127.0.0.1 # Set the client retries to 1, or errors connecting to heat repeat # which is not useful when debugging API issues num_retries = 1
Note that heat installs a template boto.cfg, see heat/etc/boto.cfg - the Credentials section must be uncommented and populated with your keystone-ec2 login details, or copy the file to ~/.boto and chmod to keep your credentials private for non-development deployment.