From 93395272def228fd9721a770fc585e414827f129 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 10 Jun 2010 17:43:44 -0400 Subject: Add a README, because GitHub loves them. Update the getting started docs. --- docs/getting.started.rst | 71 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 12 deletions(-) (limited to 'docs/getting.started.rst') diff --git a/docs/getting.started.rst b/docs/getting.started.rst index 777cd32e9..e9a2f4b2e 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,39 @@ 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 + -- cgit From 0da7b9b0e50f049980ca1eef637d0a056f55fdb1 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 10 Jun 2010 20:41:41 -0400 Subject: More doc updates: nginx & pycurl. --- docs/getting.started.rst | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'docs/getting.started.rst') diff --git a/docs/getting.started.rst b/docs/getting.started.rst index e9a2f4b2e..df6ecbb01 100644 --- a/docs/getting.started.rst +++ b/docs/getting.started.rst @@ -32,10 +32,12 @@ 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) +* nginx: HTTP server to handle serving large files (because Tornado can't) Python libraries we don't vendor * M2Crypto: python library interface for openssl +* curl Vendored python libaries (don't require any installation) @@ -62,12 +64,11 @@ Installation # 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 + apt-get install -y rabbitmq-server dnsmasq nginx # build redis from 2.0.0-rc1 source # setup ldap (slap.sh as root will remove ldap and reinstall it) - auth/slap.sh + NOVA_PATH/nova/auth/slap.sh /etc/init.d/rabbitmq-server start # ON VOLUME NODE: @@ -91,6 +92,25 @@ ON CLOUD CONTROLLER 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 + +* Configure NginX proxy (/etc/nginx/sites-enabled/default):: + server { + listen 3333 default; + server-name localhost; + client_max_body_size 10m; + + access_log /var/log/nginx/localhost.access.log; + + location ~ /_images/.+ { + root NOVA_PATH/images; + rewrite ^/_images/(.*)\$ /\$1 break; + } + + location / { + proxy_pass http://localhost:3334/; + } + } + ON VOLUME NODE * create a filesystem (you can use an actual disk if you have one spare, default is /dev/sdb) @@ -107,6 +127,7 @@ Launch servers * rabbitmq * redis * slapd +* nginx Launch nova components -- cgit From 701f7fd6e1eac0c18c87d794dc762f39eaa74a09 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 10 Jun 2010 22:12:51 -0400 Subject: Make nginx config be in a code block. --- docs/getting.started.rst | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'docs/getting.started.rst') diff --git a/docs/getting.started.rst b/docs/getting.started.rst index df6ecbb01..3b28b4363 100644 --- a/docs/getting.started.rst +++ b/docs/getting.started.rst @@ -93,7 +93,10 @@ ON CLOUD CONTROLLER iptables --table nat --append POSTROUTING --out-interface $PUBLICIFACE -j MASQUERADE -* Configure NginX proxy (/etc/nginx/sites-enabled/default):: +* Configure NginX proxy (/etc/nginx/sites-enabled/default) + +:: + server { listen 3333 default; server-name localhost; -- cgit From 1c61272d29f30a73f701c219a7b669c67f4cb447 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Thu, 10 Jun 2010 22:14:23 -0400 Subject: make a "Running" topic instead of having it flow under "Configuration". --- docs/getting.started.rst | 3 +++ 1 file changed, 3 insertions(+) (limited to 'docs/getting.started.rst') diff --git a/docs/getting.started.rst b/docs/getting.started.rst index 3b28b4363..9d7808a27 100644 --- a/docs/getting.started.rst +++ b/docs/getting.started.rst @@ -125,6 +125,9 @@ ON VOLUME NODE losetup --show -f MY_FILE_PATH echo "--storage_dev=/dev/loop0" >> NOVA_PATH/bin/nova.conf +Running +--------- + Launch servers * rabbitmq -- cgit From ea9b913ccceda5944c881f3ce9cadde39b0e0344 Mon Sep 17 00:00:00 2001 From: Vishvananda Ishaya Date: Wed, 30 Jun 2010 15:07:52 -0500 Subject: getting started update --- docs/getting.started.rst | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'docs/getting.started.rst') diff --git a/docs/getting.started.rst b/docs/getting.started.rst index 37e6f5a90..55a73dd00 100644 --- a/docs/getting.started.rst +++ b/docs/getting.started.rst @@ -43,7 +43,7 @@ Installation :: # system libraries and tools - apt-get install -y aoetools vlan + apt-get install -y aoetools vlan curl modprobe aoe # python libraries @@ -62,6 +62,7 @@ Installation # ON THE COMPUTE NODE: apt-get install -y python-libvirt apt-get install -y kpartx kvm libvirt-bin + modprobe kvm # optional packages apt-get install -y euca2ools @@ -92,7 +93,7 @@ ON CLOUD CONTROLLER location ~ /_images/.+ { root NOVA_PATH/images; - rewrite ^/_images/(.*)\$ /\$1 break; + rewrite ^/_images/(.*)$ /$1 break; } location / { @@ -109,6 +110,7 @@ ON VOLUME NODE # 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 loop0 below with whatever losetup returns echo "--storage_dev=/dev/loop0" >> NOVA_PATH/bin/nova.conf Running -- cgit