Jump to: navigation, search

Difference between revisions of "Nova-deployment-tool"

 
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__NOTOC__
+
{{OldDesignPage}}
* '''Launchpad Entry''': [[NovaSpec]]:foo or [[SwiftSpec]]:foo
+
* '''Launchpad Entry''': NovaSpec:nova-deployment-tool
* '''Created''':
+
* '''Created''': 2010-10-31
* '''Contributors''':  
+
* '''Contributors''': Shigetoshi Yokoyama, Nobukazu Yoshioka
  
 
== Summary ==
 
== Summary ==
Line 15: Line 15:
  
 
== User stories ==
 
== User stories ==
Basic senario:
+
'''Basic senario:'''
  
A first year master student of Computer Science Department (Akira) has benchmarked the cloud based on Eucalyptus 2.0.  
+
A first year master student of Computer Science Department (Akira) has benchmarked Eucalyptus 2.0.  
Now Akira wants to do the same benchmark for Nova in the same environment as before.  
+
Now Akira wants to apply the same benchmark on Nova in the same environment as before.  
  
Preparements before starting benchmarking:
+
'''Requirements before starting scenarios:'''
 +
# Os Ubuntu 10.10 Server edition is installed
 +
# Network is connected.
  
1. Os Ubuntu 10.10 Server edition is installed
+
'''Scenario 1:'''
2. Network is connected.
+
# Change the setting for one computer, then execute deployment tool to install nova(Austin) into one computer automatically.
 +
# Run functional test automatically, and confirm all the test results are OK.
 +
# 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.
 +
# Start benchmarking and get the result.
  
Senario 1:
+
Steps:
1. Change the setting for one computer, then execute deployment tool to install nova(2010.10.21 version) into one computer automatically.
+
# Install deployment tool.
2. Run functional test automatically, and confirm all the test results are OK.
+
# Change setting.
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,
+
# Execute deployment tool.
and run functional tests again.
+
#* Install puppet
4. Start benchmarking and get the result.
+
#* Create manifest according to setting.
 
+
#* Puppet_run
Senario 1 in deatils:
+
#* Execute nova test tool for functional test.
Step:
+
#* Return test results with advisory message.
1. Install deployment tool.
+
#* If OK, go to 4.
2. Change setting.
+
# Start benchmarking, get result data.
3. Execute deployment tool.
 
- Install puppet
 
- Create manifest according to setting.
 
- Puppet_run
 
- Execute nova test tool for functional test.
 
- Return test results with advisory message.
 
- If OK, go to 4.
 
4. Start benchmarking, get result data.
 
  
Senario 2:
+
'''Scenario 2:'''
1. Change the setting for five computers(api + volume, network, compute x 3), then execute deployment tool to install nova(2010.10.21 version) into five computers automatically.
+
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.
 
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,  
+
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.
and run functional tests again.
 
 
4. Start benchmarking and get the result.  
 
4. Start benchmarking and get the result.  
  
Senario 2 in details:
+
Preconditions:
 +
Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
  
Precondition:
+
Detailed documentation available at [[NovaInstall/NovaDeploymentTool]].
1. Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
 
  
Step:
+
Steps:
1. Install deployment tool.
+
# Install deployment tool.
2. Change setting.
+
# Change setting.
3. Execute deployment tool.
+
# Execute deployment tool.
- Install puppet
+
#* Install puppet
- Create manifest according to setting.
+
#* Create manifest according to setting.
- Puppet_run
+
#* Puppet_run
- Execute nova test tool for functional test.
+
#* Execute nova test tool for functional test.
- Return test results with advisory message.
+
#* Return test results with advisory message.
- If OK, go to 4.
+
#* If OK, go to 4.
4. Start benchmarking, get result data.  
+
# Start benchmarking, get result data.  
  
Senario 3:
+
'''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.
+
# 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.
+
# 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.
+
# 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.
+
# Start benchmarking and get the result.
  
Senario 3 in details:
+
Preconditions:
 +
Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
  
Precondition:  
+
Steps:
1. Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
+
Same as scenario 1.  
  
Step:
+
'''Scenario 4:'''
As same as senario 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.
 
+
# Run functional test automatically, and confirm all the test results are OK.
Senario 4:
+
# 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.
1. Change the setting for five computers(api + volume + network, compute x 4), then execute deployment tool to install nova(2010.10.21 version) into five computers automatically.
+
# Start benchmarking and get the result.
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.
 
 
 
Senario 4 in details:
 
  
 
Precondition:  
 
Precondition:  
1. Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
+
Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
  
 
Step:
 
Step:
As same as senario 1.
+
Same as senario 1.  
 
 
Senario 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.  
 
  
Senario 5 in details:
+
'''Scenario 5:'''
 +
# 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.
 +
# Run functional test automatically, and confirm all the test results are OK.
 +
# 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.
 +
# Start benchmarking and get the result.
  
Precondition:  
+
Preconditions:  
1. Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
+
Five computers with Ubuntu 10.10 server edition installed and connected in the same LAN.
  
Step:
+
Steps:
As same as senario 1.  
+
Same as senario 1.  
  
 
== Assumptions ==
 
== Assumptions ==
Line 117: Line 107:
  
 
== Design ==
 
== Design ==
1. Download the deployment tool(Deloy.sh)  
+
# 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.  
+
# 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.  
+
# Execute Deploy.sh.  
 
+
# ********* The followings are what Deploy.sh does ***********  
* *********The followings are what Deloy.sh do.***********  
+
# Install Ruby, Gem, Puppet and other necessary software.  
4. Install Ruby, Gem, Puppet and other necessary softwares.  
+
# Change Puppet manifest according to the configuration file.
5. Change Puppet manifest according to 2.  
+
# Deploy Puppet master's manifest.  
6. Deloy Puppet master's manifest.  
+
# Start Puppet client.  
7. Start Puppet client.  
+
# Install Nova and start it.  
8. Install Nova and start it.  
+
# Install [[NovaClient]](to the step loading novarc).  
9. Install [[NovaClient]](to the step loading novarc).  
+
# Execute Nova test cases to confirm the result.  
10. Execute Nova test cases to confirm the result.  
+
# Output the result.  
11. Output the result.  
 
  
 
== Implementation ==
 
== Implementation ==
Line 145: Line 134:
  
 
== Test/Demo Plan ==
 
== Test/Demo Plan ==
Test to check if all the services are running.  
+
# Test to check if all the services are running.
Test to check if the image can be bundled, uploaded and registered.  
+
# Test to check if the image can be bundled, uploaded and registered.
Test to check if the registered image can be started as an instance.  
+
# Test to check if the registered image can be started as an instance.
Test to check if the instance started can be terminated.  
+
# Test to check if the instance started can be terminated.
  
 
== Unresolved issues ==
 
== Unresolved issues ==
TBD
+
This might be related to Soren's blueprint and should maybe be discussed at the same time.
 +
 
 +
[https://blueprints.launchpad.net/nova/+spec/austin-puppet-deployment Soren's "Use puppet to deploy Nova" blueprint]
  
 
== BoF agenda and discussion ==
 
== BoF agenda and discussion ==
 +
 
TBD
 
TBD
  
 
----
 
----
 
[[Category:Spec]]
 
[[Category:Spec]]

Latest revision as of 07:14, 26 March 2014

Warning.svg Old Design Page

This page was used to help design a feature for a previous release of OpenStack. It may or may not have been implemented. As a result, this page is unlikely to be updated and could contain outdated information. It was last updated on 2014-03-26

  • 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.
    • Install puppet
    • Create manifest according to setting.
    • Puppet_run
    • Execute nova test tool for functional test.
    • Return test results with advisory message.
    • If OK, go to 4.
  4. 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.
    • Install puppet
    • Create manifest according to setting.
    • Puppet_run
    • Execute nova test tool for functional test.
    • Return test results with advisory message.
    • If OK, go to 4.
  4. 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