Nova-deployment-tool


 * Launchpad Entry: NovaSpec:nova-deployment-tool
 * Created: 2010-10-31
 * Contributors: Shigetoshi Yokoyama, Nobukazu Yoshioka

Summary
Develop a deployment tool for easily installing nova to numbers of computers simultaneously.

Release Note
TBD

Rationale
Using configuration management tool, you can create deployment tool to install nova into multiple OS quickly, to maintain the installing script easily, and install to numbers of machines simultaneously.

User stories
Basic senario:

A first year master student of Computer Science Department (Akira) has benchmarked Eucalyptus 2.0. Now Akira wants to apply the same benchmark on Nova in the same environment as before.

Requirements before starting scenarios:
 * 1) Os Ubuntu 10.10 Server edition is installed
 * 2) Network is connected.

Scenario 1:
 * 1) Change the setting for one computer, then execute deployment tool to install nova(Austin) into one computer automatically.
 * 2) Run functional test automatically, and confirm all the test results are OK.
 * 3) If any test result is NG in step 2, analyze the reason according to the error message, and after solving it, run the deployment tool to install nova, and run functional tests again.
 * 4) Start benchmarking and get the result.

Steps:
 * 1) Install deployment tool.
 * 2) Change setting.
 * 3) Execute deployment tool.
 * 4) * Install puppet
 * 5) * Create manifest according to setting.
 * 6) * Puppet_run
 * 7) * Execute nova test tool for functional test.
 * 8) * Return test results with advisory message.
 * 9) * If OK, go to 4.
 * 10) Start benchmarking, get result data.

Scenario 2: 1. Change the setting for five computers(api + volume, network, compute x 3), then execute deployment tool to install nova(Austin) into five computers automatically. 2. Run functional test automatically, and confirm all the test results are OK. 3. If any test result is NG in step 2, analyze the reason according to the error message, and after solving it, run the deployment tool to install nova, and run functional tests again. 4. Start benchmarking and get the result.

Preconditions: Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.

Detailed documentation available at NovaInstall/NovaDeploymentTool.

Steps:
 * 1) Install deployment tool.
 * 2) Change setting.
 * 3) Execute deployment tool.
 * 4) * Install puppet
 * 5) * Create manifest according to setting.
 * 6) * Puppet_run
 * 7) * Execute nova test tool for functional test.
 * 8) * Return test results with advisory message.
 * 9) * If OK, go to 4.
 * 10) Start benchmarking, get result data.

Scenario 3:
 * 1) Change the setting for five computers(api, volume, network, compute x 2), then execute deployment tool to install nova(2010.10.21 version) into five computers automatically.
 * 2) Run functional test automatically, and confirm all the test results are OK.
 * 3) If any test result is NG in step 2, analyze the reason according to the error message, and after solving it, run the deployment tool to install nova, and run functional tests again.
 * 4) Start benchmarking and get the result.

Preconditions: Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.

Steps: Same as scenario 1.

Scenario 4:
 * 1) Change the setting for five computers(api + volume + network, compute x 4), then execute deployment tool to install nova(Austin) into five computers automatically.
 * 2) Run functional test automatically, and confirm all the test results are OK.
 * 3) If any test result is NG in step 2, analyze the reason according to the error message, and after solving it, run the deployment tool to install nova, and run functional tests again.
 * 4) Start benchmarking and get the result.

Precondition: Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.

Step: Same as senario 1.

Scenario 5:
 * 1) Change the setting for five computers(api, volume x 2, network, compute), then execute deployment tool to install nova(2010.10.21 version) into five computers automatically.
 * 2) Run functional test automatically, and confirm all the test results are OK.
 * 3) If any test result is NG in step 2, analyze the reason according to the error message, and after solving it, run the deployment tool to install nova, and run functional tests again.
 * 4) Start benchmarking and get the result.

Preconditions: Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.

Steps: Same as senario 1.

Assumptions
OS has been installed into target computers. Sshd has been installed into target computers. Ssh has been installed into the computers where to install from.

Design

 * 1) Download the deployment tool(Deploy.py)
 * 2) Change the setting of the deployment tool, which is something like configuration file. And the setting items are IP address, installation path and others.
 * 3) Execute Deploy.sh.
 * 4) ********* The followings are what Deploy.sh does ***********
 * 5) Install Ruby, Gem, Puppet and other necessary software.
 * 6) Change Puppet manifest according to the configuration file.
 * 7) Deploy Puppet master's manifest.
 * 8) Start Puppet client.
 * 9) Install Nova and start it.
 * 10) Install NovaClient(to the step loading novarc).
 * 11) Execute Nova test cases to confirm the result.
 * 12) Output the result.

Implementation
TBD

UI Changes
TBD

Code Changes
TBD

Migration
TBD

Test/Demo Plan

 * 1) Test to check if all the services are running.
 * 2) Test to check if the image can be bundled, uploaded and registered.
 * 3) Test to check if the registered image can be started as an instance.
 * 4) Test to check if the instance started can be terminated.

Unresolved issues
This might be related to Soren's blueprint and should maybe be discussed at the same time.

Soren's "Use puppet to deploy Nova" blueprint

BoF agenda and discussion
TBD