CACTUS IS CURRENTLY BROKEN AND BEING REFACTORED
This page is a brief guide to deploying OpenStack with the cookbooks currently available from Matt Ray's GitHub repository (http://github.com/mattray/openstack-cookbooks/tree/cactus). It is currently intended for deploying the point-release codenamed "Cactus", other branches will be added as they are released ("Bexar" is still available as a branch). The intention for the repository is to only support major releases.
Right now the cookbooks have only been tested with the "Bexar" release of Nova and "Cactus" support is under active development. Other components will be added in time and new releases will be added as they are available. There is currently no intention to continue development on previous releases once a new release is available (but patches are welcome!). The eventual goal is to support all the configuration options available for OpenStack via attributes and available OpenStack and Chef cookbooks.
All code in the repository is Apache 2 licensed and covered by the Contribution License Agreement. Patches will not be accepted without this requirement.
This has been primarily tested with Ubuntu 10.04 (a bit with 10.10) and Chef 0.9.16 and later.
What is OpenStack?
The cookbooks and configuration files are currently available from Matt Ray's GitHub repository.
(note the "cactus" branch)
These were originally forked from the work in Anso Labs' OpenStack-Cookbooks but have diverged greatly since the original fork.
Download the following cookbooks:
Once the cookbooks have been all been downloaded and untarred into the cookbooks directory
From the openstack-cookbooks directory
to load all the roles in the repository.
Here is a graphic of the relationships between the roles (ovals) and recipes:
Installs everything required to run Nova on a single machine, a special case of multi-node and simply depends on the "nova-multi-controller" and "nova-multi-compute" roles.
provides an attribute hash for loading AMIs into Nova.
Configure Attributes for Deployment
OpenStack is a complicated application with many configurable and interchangeable components. Once you have your repository and have uploaded your cookbooks and roles, you can start applying the roles to nodes. The default installation currently uses MySQL, RabbitMQ and KVM and only deploys Nova (so no integration with Glance and Swift yet). If your nodes are provisioned, the only attribute you will need to set are the URLs in
in the nova-aim-urls.rb to ensure you have AMIs loaded into Nova. Once you have that configured, upload the nova-aim-urls role and assign the roles as follows:
and run the chef-client on the machine.
and run the chef-client on the controller and then compute node(s).
Verify your Installation
Once you've deployed your servers, SSH into the controller node (or single box) and
then, as the nova user verify that your services are all running properly:
and list the available images
select the ami-h8wh0j17 (or whatever is generated) and enter the following
see the progress as your instance starts up
once it is running
and connect to your new OpenStack instance.
OpenStack is supported by the Chef command-line tool knife with Chef 0.10 and the knife openstack plugin. You can install it with "gem install knife-openstack".
This is a non-ordered list of things that are prioritized to work on.