This code base is under development, so ask Matt Ray about the current state if these instructions aren't currently working.
Right now the Cactus cookbooks support a single machine with Glance and Nova, but they are 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 they are available and patches are welcome!). The eventual goal is to support all the configuration options available for OpenStack with 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.10 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.
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 will need to configure and upload the openstack data bag. Glance and Nova are configured with the glance and nova JSON files in the data_bags/openstack/ directory. AMIs to be installed are managed with the images JSON file. You may upload these with
There are also attributes available for configuration, these may be overridden as necessary. Once these are in place you may apply the roles to nodes. The default installation currently uses MySQL, RabbitMQ and KVM and only deploys Glance on the Nova Controller (so no integration with Swift yet).
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-00000002 (or whichever you prefer) 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".
You will need to update your .chef/knife.rb with the following:
You can get the access_key and secret_key values with "knife node show mycontroller -a nova | grep key"
You should now be able to run
which currently fails to bootstrap, but creates the instance (euca-describe-instances will list it). http://tickets.opscode.com/browse/KNIFE_OPENSTACK-1
This is a non-ordered list of things that are prioritized to work on.