This code base is continually changing, so dependencies also change. If you encounter any problems, see the Getting Involved page. The contrib/nova.sh script should be kept up to date, and may be a good resource to review when debugging.
The purpose of this document is to get a system installed that you can use to test your setup assumptions. Working from this base installtion you can tweak configurations and work with different flags to monitor interaction with your hardware, network, and other factors that will allow you to determine suitability for your deployment. After following this setup method, you should be able to experiment with different managers, drivers, and flags to get the best performance.
Related servers we rely on
Optional servers
Python libraries that we use (from pip-requires):
SQLAlchemy==0.6.3
pep8==0.6.1
pylint==0.19
Cheetah==2.4.4
M2Crypto==0.20.2
amqplib==0.6.1
anyjson==0.2.4
boto==1.9b
carrot==0.10.5
eventlet
kombu
lockfile==0.8
lxml==2.3
python-novaclient==2.6.0
python-daemon==1.5.5
python-gflags==1.3
redis==2.0.0
routes==1.12.3
WebOb==1.0.8
wsgiref==0.1.2
mox==0.5.3
greenlet==0.3.1
nose
bzr
PasteDeploy
paste
sqlalchemy-migrate
netaddr
sphinx
glance
xattr>=0.6.0
nova-adminclient
suds==0.4
coverage
nosexcover
GitPython
paramiko
Other libraries:
External unix tools that are required:
Nova uses cutting-edge versions of many packages. There are ubuntu packages in the nova-core trunk ppa. You can use add this ppa to your sources list on an ubuntu machine with the following commands:
sudo apt-get install -y python-software-properties
sudo add-apt-repository ppa:nova-core/trunk
You can install from packages for your particular Linux distribution if they are available. Otherwise you can install from source by checking out the source files from the Nova Source Code Repository and running:
python setup.py install
Nova can be configured in many different ways. In this “Getting Started with Nova” document, we only provide what you need to get started as quickly as possible. For a more detailed description of system configuration, start reading through Installing and Configuring OpenStack Compute.
Detailed instructions for creating a volume group are available, or use these quick instructions.
Create a volume group (you can use an actual disk for the volume group as well):
# This creates a 1GB file to create volumes out of
dd if=/dev/zero of=MY_FILE_PATH bs=100M count=10
losetup --show -f MY_FILE_PATH
# replace /dev/loop0 below with whatever losetup returns
# nova-volumes is the default for the --volume_group flag
vgcreate nova-volumes /dev/loop0
Configuration of the entire system is performed through python-gflags. The best way to track configuration is through the use of a flagfile.
A flagfile is specified with the --flagfile=FILEPATH argument to the binary when you launch it. Flagfiles for nova are typically stored in /etc/nova/nova.conf, and flags specific to a certain program are stored in /etc/nova/nova-COMMAND.conf. Each configuration file can include another flagfile, so typically a file like nova-manage.conf would have as its first line --flagfile=/etc/nova/nova.conf to load the common flags before specifying overrides or additional options.
To get a current comprehensive list of flag file options, run bin/nova-<servicename> –help, or refer to a static list at Reference for Flags in nova.conf.
A sample configuration to test the system follows:
--verbose
--nodaemon
--auth_driver=nova.auth.dbdriver.DbDriver
There are many parts to the nova system, each with a specific function. They are built to be highly-available, so there are may configurations they can be run in (ie: on many machines, many listeners per machine, etc). This part of the guide only gets you started quickly, to learn about HA options, see Installing and Configuring OpenStack Compute.
Launch supporting services
Launch nova components, each should have --flagfile=/etc/nova/nova.conf