161 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			161 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
..
 | 
						|
      Copyright 2010-2011 United States Government as represented by the
 | 
						|
      Administrator of the National Aeronautics and Space Administration. 
 | 
						|
      All Rights Reserved.
 | 
						|
 | 
						|
      Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
						|
      not use this file except in compliance with the License. You may obtain
 | 
						|
      a copy of the License at
 | 
						|
 | 
						|
          http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
      Unless required by applicable law or agreed to in writing, software
 | 
						|
      distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
						|
      WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
						|
      License for the specific language governing permissions and limitations
 | 
						|
      under the License.
 | 
						|
 | 
						|
Nova Quickstart
 | 
						|
===============
 | 
						|
 | 
						|
.. todo:: 
 | 
						|
    P1 (this is one example of how to use priority syntax)
 | 
						|
    * Document the assumptions about pluggable interfaces (sqlite3 instead of
 | 
						|
      mysql, etc) (todd)
 | 
						|
    * Document env vars that can change things (USE_MYSQL, HOST_IP) (todd)
 | 
						|
 | 
						|
Recommended System Configuration
 | 
						|
--------------------------------
 | 
						|
 | 
						|
Although Nova can be run on a variety of system architectures, for most users the following will be simplest:
 | 
						|
 | 
						|
* Ubuntu Lucid
 | 
						|
* 10GB Hard Disk Space
 | 
						|
* 512MB RAM
 | 
						|
 | 
						|
For development, Nova can run from within a VM.
 | 
						|
 | 
						|
 | 
						|
Getting the Code
 | 
						|
----------------
 | 
						|
 | 
						|
Nova is hosted on launchpad.  You can get the code with the following command
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    bzr clone lp:nova
 | 
						|
 | 
						|
The `contrib/nova.sh` file in the source distribution is a script that
 | 
						|
will quickly set up nova to run on a single machine.  It is tested against
 | 
						|
Ubuntu only, but other distributions are forthcoming.
 | 
						|
 | 
						|
Environment Variables
 | 
						|
---------------------
 | 
						|
 | 
						|
By tweaking the environment that nova.sh run in, you can build slightly
 | 
						|
different configurations (though for more complex setups you should see
 | 
						|
`Installing and Configuring OpenStack Compute <http://docs.openstack.org/openstack-compute/admin/content/ch03.html>`_).
 | 
						|
 | 
						|
* HOST_IP
 | 
						|
    * Default: address of first interface from the ifconfig command
 | 
						|
    * Values: 127.0.0.1, or any other valid address
 | 
						|
* TEST
 | 
						|
    * Default: 0
 | 
						|
    * Values: 1, run tests after checkout and initial setup
 | 
						|
* USE_MYSQL
 | 
						|
    * Default: 0, use sqlite3
 | 
						|
    * Values: 1, use mysql instead of sqlite3
 | 
						|
* MYSQL_PASS (Only useful if $USE_MYSQL=1)
 | 
						|
    * Default: nova
 | 
						|
    * Values: value of root password for mysql
 | 
						|
* USE_LDAP
 | 
						|
    * Default: 0, use :mod:`nova.auth.dbdriver`
 | 
						|
    * Values: 1, use :mod:`nova.auth.ldapdriver`
 | 
						|
* LIBVIRT_TYPE
 | 
						|
    * Default: qemu
 | 
						|
    * Values: uml, kvm
 | 
						|
 | 
						|
Usage
 | 
						|
-----
 | 
						|
 | 
						|
Unless you want to spend a lot of time fiddling with permissions and sudoers,
 | 
						|
you should probably run nova as root.
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    sudo -i
 | 
						|
 | 
						|
If you are concerned about security, nova runs just fine inside a virtual
 | 
						|
machine.
 | 
						|
 | 
						|
Use the script to install and run the current trunk. You can also specify a
 | 
						|
specific branch by putting `lp:~someone/nova/some-branch` after the branch
 | 
						|
command
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    ./nova.sh branch
 | 
						|
    ./nova.sh install
 | 
						|
    ./nova.sh run
 | 
						|
 | 
						|
The run command will drop you into a screen session with all of the workers
 | 
						|
running in different windows  You can use eucatools to run commands against the
 | 
						|
cloud.
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    euca-add-keypair test > test.pem
 | 
						|
    euca-run-instances -k test -t m1.tiny ami-tiny
 | 
						|
    euca-describe-instances
 | 
						|
 | 
						|
To see output from the various workers, switch screen windows
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    <ctrl-a> "
 | 
						|
 | 
						|
will give you a list of running windows.
 | 
						|
 | 
						|
When the instance is running, you should be able to ssh to it.
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    chmod 600 test.pem
 | 
						|
    ssh -i test.pem root@10.0.0.3
 | 
						|
 | 
						|
When you exit screen
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    <ctrl-a> <ctrl-d>
 | 
						|
 | 
						|
nova will terminate.  It may take a while for nova to finish cleaning up.  If
 | 
						|
you exit the process before it is done because there were some problems in your
 | 
						|
build, you may have to clean up the nova processes manually.  If you had any
 | 
						|
instances running, you can attempt to kill them through the api:
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    ./nova.sh terminate
 | 
						|
 | 
						|
Then you can destroy the screen:
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
    ./nova.sh clean
 | 
						|
 | 
						|
If things get particularly messed up, you might need to do some more intense
 | 
						|
cleanup.  Be careful, the following command will manually destroy all runnning
 | 
						|
virsh instances and attempt to delete all vlans and bridges.
 | 
						|
 | 
						|
:: 
 | 
						|
 | 
						|
	./nova.sh scrub
 | 
						|
 | 
						|
You can edit files in the install directory or do a bzr pull to pick up new versions. You only need to do
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
	./nova.sh run
 | 
						|
 | 
						|
to run nova after the first install. The database should be cleaned up on each run. |