PuppetSpec


 * Launchpad Entry: NovaSpec:austin-puppet-deployment
 * Created: 2010-09-02
 * Contributors: SorenHansen

Summary
Ubuntu's configuration management system of choice is Puppet. As such, we should provide a set of puppet recipes to make deploying Nova with Puppet very simple.

Release Note
Nova comes with a set of Puppet recipes that you can include in your puppet configuration to make deploying Nova a breeze.

Rationale
Nova has many different components and a number of external dependencies (like Redis and Rabbit (and optionally an LDAP server or whatnot)). Getting it all set up can be daunting for new users, so we should help them get started.

User stories
Andrew wants to test Nova out on his laptop. He does not currently use puppet. He, following the instructions for single box installs, installs puppet and the nova puppet recipes and runs the "everything-on-a-single-box" recipe. This installs redis, rabbit, nova-api, nova-objectstore, nova-volume, and nova-compute on his laptop, all set up and ready to go.

Bernard wants to deploy Nova in his data center. He does not currently use puppet. He, following the instructions, installs a puppetmaster and installs puppet on the nodes on which he wants to run Nova. After ensuring that the communication between the puppetmaster and the puppets is functional, he, again following the instructions, designates which of the nodes will run which services. After the next puppet refresh, a node will be running redis, a node will be running rabbit, a node will be running nova-objectstore, at least one node will be running nova-api, at least one node will be running nova-volume, and at least one node will be running nova-network (Each node can be running multiple of these services). All services will be speaking to the same rabbitmq server and same redis server.

Charles wants to deploy Nova in his data center. He uses puppet already. He installs the nova puppet recipes and configures everything like Bernard.

Charles wants to deploy Nova in his data center. He uses puppet and rabbitmq already. He installs the nova puppet recipes and configures everything like Bernard, except he points the setup at his existing rabbitmq server and gets the same results as Bernard and Charles.

Assumptions
We will not attempt to distribute rabbitmq. We will not attempt to distribute Redis.

Design
TBD

Implementation
TBD

Code Changes
Code changes should include an overview of what needs to change, and in some cases even the specific details.

Test/Demo Plan
TBD