diff options
author | Todd Willey <todd@rubidine.com> | 2010-06-20 15:09:17 -0700 |
---|---|---|
committer | Jesse Andrews <anotherjesse@gmail.com> | 2010-06-20 15:09:17 -0700 |
commit | 8d06bb6a6adbbe355b3c656fcd807ecc4bbe79af (patch) | |
tree | 456d45b39801dcbf17734adfe6a6fabc9f8640c3 | |
parent | 7275c83c5c0e56e041ba3f81a6176bc86156b02a (diff) | |
download | nova-8d06bb6a6adbbe355b3c656fcd807ecc4bbe79af.tar.gz nova-8d06bb6a6adbbe355b3c656fcd807ecc4bbe79af.tar.xz nova-8d06bb6a6adbbe355b3c656fcd807ecc4bbe79af.zip |
Add a README, because GitHub loves them. Update the getting started docs.
-rw-r--r-- | README | 17 | ||||
-rw-r--r-- | docs/getting.started.rst | 70 |
2 files changed, 75 insertions, 12 deletions
@@ -0,0 +1,17 @@ +The Choose Your Own Adventure README for Nova: + + You have come across a cloud computing fabric controller. It has identified + itself as "Nova." It is apparent that it maintains compatability with + the popular Amazon EC2 and S3 APIs. + +To monitor it from a distance: follow @opennova + +To tame it for use in your own cloud: read http://docs.novacc.org/getting.started.html + +To study its anatomy: read http://docs.novacc.org/architecture.html + +To disect it in detail: visit http://github.com/nova/cc + +To taunt it with its weaknesses: use http://github.com/nova/cc/issues + +To hack at it: read HACKING diff --git a/docs/getting.started.rst b/docs/getting.started.rst index 777cd32e9..3541b253e 100644 --- a/docs/getting.started.rst +++ b/docs/getting.started.rst @@ -19,20 +19,34 @@ Getting Started with Nova GOTTA HAVE A nova.pth file added or it WONT WORK (will write setup.py file soon) +Create a file named nova.pth in your python libraries directory +(usually /usr/local/lib/python2.6/dist-packages) with a single line that points +to the directory where you checked out the source (that contains the nova/ +directory). + DEPENDENCIES ------------ +Related servers we rely on + * RabbitMQ: messaging queue, used for all communication between components * OpenLDAP: users, groups (maybe cut) +* ReDIS: Remote Dictionary Store (for fast, shared state data) + +Python libraries we don't vendor + +* M2Crypto: python library interface for openssl + +Vendored python libaries (don't require any installation) + * Tornado: scalable non blocking web server for api requests * Twisted: just for the twisted.internet.defer package * boto: python api for aws api -* M2Crypto: python library interface for openssl * IPy: library for managing ip addresses -* ReDIS: Remote Dictionary Store (for fast, shared state data) Recommended ----------------- + * euca2ools: python implementation of aws ec2-tools and ami tools * build tornado to use C module for evented section @@ -41,16 +55,17 @@ Installation -------------- :: - # ON ALL SYSTEMS - apt-get install -y python-libvirt libvirt-bin python-setuptools python-dev python-pycurl python-m2crypto python-twisted - apt-get install -y aoetools vlan + # system libraries and tools + apt-get install -y libvirt-bin aoetools vlan modprobe aoe + # python libraries + apt-get install -y python-libvirt python-setuptools python-dev python-pycurl python-m2crypto + + # ON THE CLOUD CONTROLLER apt-get install -y rabbitmq-server dnsmasq - # fix ec2 metadata/userdata uri - where $IP is the IP of the cloud - iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $IP:8773 - iptables --table nat --append POSTROUTING --out-interface $PUBLICIFACE -j MASQUERADE + # build redis from 2.0.0-rc1 source # setup ldap (slap.sh as root will remove ldap and reinstall it) auth/slap.sh /etc/init.d/rabbitmq-server start @@ -64,7 +79,38 @@ Installation # optional packages apt-get install -y euca2ools - # Set up flagfiles with the appropriate hostnames, etc. - # start api_worker, s3_worker, node_worker, storage_worker - # Add yourself to the libvirtd group, log out, and log back in - # Make sure the user who will launch the workers has sudo privileges w/o pass (will fix later) +Configuration +--------------- + +ON CLOUD CONTROLLER + +* Add yourself to the libvirtd group, log out, and log back in +* fix hardcoded ec2 metadata/userdata uri ($IP is the IP of the cloud), and masqurade all traffic from launched instances +:: + + iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d 169.254.169.254/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination $IP:8773 + iptables --table nat --append POSTROUTING --out-interface $PUBLICIFACE -j MASQUERADE + +ON VOLUME NODE + +* create a filesystem (you can use an actual disk if you have one spare, default is /dev/sdb) + +:: + + # 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 + echo "--storage_dev=/dev/loop0" >> NOVA_PATH/bin/nova.conf + +Launch servers + +* rabbitmq +* redis +* slapd + +Launch nova components + +* api_worker +* s3_worker +* node_worker +* storage_worker |