1) Pre-requirements: Install Ubuntu 12.04
root@nova:~# cat /etc/*release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=12.04 DISTRIB_CODENAME=precise DISTRIB_DESCRIPTION="Ubuntu 12.04 LTS"
2) Install some libs which is required by openstack
apt-get install libxml2-dev libxslt-dev apt-get install libmysqlclient-dev
3) Install devstack following: http://devstack.org/
3.1) We can use essex version, this is more stable. Check it out using:
git clone -b "stable/essex" git://github.com/openstack-dev/devstack.git
3.2) Create a localrc file which can help facilitate your installation, the content would be as following, put this file to the first level directory for devstack.
root@nova:~/devstack# cat localrc ADMIN_PASSWORD=nova MYSQL_PASSWORD=nova RABBIT_PASSWORD=nova SERVICE_PASSWORD=nova SERVICE_TOKEN=tokentoken FLAT_INTERFACE=br100
3.3) run ./stack.sh, wait some time, openstack will be ready.
4)Use openstack
Once install finished, you can either use euca2ools or nova command to operate with openstack. The location of openstack after install is under /opt/stack
root@nova:/opt/stack# pwd /opt/stack root@nova:/opt/stack# pwd /opt/stack root@nova:/opt/stack# cd devstack/ root@nova:/opt/stack/devstack# ls AUTHORS eucarc exerciserc exercises exercise.sh files functions HACKING.rst LICENSE localrc nova_help openrc README.md rejoin-stack.sh samples stackrc stack-screenrc stack.sh tests tools unstack.sh root@nova:/opt/stack/devstack# source openrc admin admin root@nova:/opt/stack/devstack# source eucarc admin admin root@nova:/opt/stack/devstack# euca-describe-images IMAGE aki-00000001 None (cirros-0.3.0-x86_64-uec-kernel) available public kernel instance-store IMAGE ami-00000002 None (cirros-0.3.0-x86_64-uec) available public machine aki-00000001 ari-00000003 instance-store IMAGE ari-00000003 None (cirros-0.3.0-x86_64-uec-ramdisk) available public ramdisk instance-store root@nova:/opt/stack/devstack# nova flavor-list +----+-----------+-----------+------+-----------+------+-------+-------------+ | ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | +----+-----------+-----------+------+-----------+------+-------+-------------+ | 1 | m1.tiny | 512 | 0 | 0 | | 1 | 1.0 | | 2 | m1.small | 2048 | 10 | 20 | | 1 | 1.0 | | 3 | m1.medium | 4096 | 10 | 40 | | 2 | 1.0 | | 4 | m1.large | 8192 | 10 | 80 | | 4 | 1.0 | | 5 | m1.xlarge | 16384 | 10 | 160 | | 8 | 1.0 | +----+-----------+-----------+------+-----------+------+-------+-------------+
5) Source code
Once openstack install finished, the source code is under /opt/stack.
horizon: openstack GUI
keystone: authentication and authrization
nova: major componment for provisioning and scheduling
6) How to read source code
You can import source code to eclipse, make sure use Python2.7, seems Python 3.x does not work with eclipse.
This link is about how to config eclipse, though it is in Chinese but there are some screenshots and this may help you.
7) How to debug
Just kill the nova process, add pdb to source code and start up the process manually.
for example, it we want to debug nova-scheduler, just kill nova-scheduler, then add pdb to the code where you want to debug and remove all *.pyc files, start up nova-scheduler using command "python /opt/stack/nova/bin/nova-scheduler", all the logs will be printed
to screen and will stop at the break point once the break point was triggered.
8) Attention
Please re-run ./stack.sh once the host is rebooted.