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 8d06bb6a6adbbe355b3c656fcd807ecc4bbe79af Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Sun, 20 Jun 2010 15:09:17 -0700 Subject: Add a README, because GitHub loves them. Update the getting started docs. --- docs/getting.started.rst | 70 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 58 insertions(+), 12 deletions(-) (limited to 'docs/getting.started.rst') 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 -- cgit From 605b3ea799053a15006ba70a202e0d303836acee Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Sun, 20 Jun 2010 15:09:17 -0700 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 3541b253e..323ebf249 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 e27df0af7b832d2daf8020e09ee26bb9ae3a2455 Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Sun, 20 Jun 2010 15:09:17 -0700 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 323ebf249..446e5f6b7 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 a34f3b8d57354dad42c048de939b97a14a93f8fa Mon Sep 17 00:00:00 2001 From: Todd Willey Date: Sun, 20 Jun 2010 15:09:17 -0700 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 446e5f6b7..708e75e16 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 6ad8e8f8a6aa23b4d439db0a053f6b9c7c87fe19 Mon Sep 17 00:00:00 2001 From: Jesse Andrews Date: Sun, 20 Jun 2010 15:09:58 -0700 Subject: update spacing --- docs/getting.started.rst | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'docs/getting.started.rst') diff --git a/docs/getting.started.rst b/docs/getting.started.rst index 708e75e16..d6d76031b 100644 --- a/docs/getting.started.rst +++ b/docs/getting.started.rst @@ -1,12 +1,12 @@ .. Copyright [2010] [Anso Labs, LLC] - + 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. @@ -67,19 +67,19 @@ Installation # ON THE CLOUD CONTROLLER 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) + # setup ldap (slap.sh as root will remove ldap and reinstall it) NOVA_PATH/nova/auth/slap.sh /etc/init.d/rabbitmq-server start # ON VOLUME NODE: - apt-get install -y vblade-persist + apt-get install -y vblade-persist # ON THE COMPUTE NODE: apt-get install -y kpartx kvm # optional packages - apt-get install -y euca2ools - + apt-get install -y euca2ools + Configuration --------------- @@ -137,7 +137,7 @@ Launch servers Launch nova components -* api_worker -* s3_worker -* node_worker -* storage_worker +* nova-api +* nova-compute +* nova-objectstore +* nova-volume -- cgit From 57c7bb9f45251d36b95d81a55ce60cf9e57ec602 Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 24 Jun 2010 04:12:00 +0100 Subject: documentation updates Conflicts: README --- docs/getting.started.rst | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'docs/getting.started.rst') diff --git a/docs/getting.started.rst b/docs/getting.started.rst index d6d76031b..8e3848113 100644 --- a/docs/getting.started.rst +++ b/docs/getting.started.rst @@ -58,11 +58,11 @@ Installation :: # system libraries and tools - apt-get install -y libvirt-bin aoetools vlan + apt-get install -y aoetools vlan modprobe aoe # python libraries - apt-get install -y python-libvirt python-setuptools python-dev python-pycurl python-m2crypto + apt-get install -y python-setuptools python-dev python-pycurl python-m2crypto # ON THE CLOUD CONTROLLER apt-get install -y rabbitmq-server dnsmasq nginx @@ -75,7 +75,8 @@ Installation apt-get install -y vblade-persist # ON THE COMPUTE NODE: - apt-get install -y kpartx kvm + apt-get install -y python-libvirt + apt-get install -y kpartx kvm libvirt-bin # optional packages apt-get install -y euca2ools -- 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