summaryrefslogtreecommitdiffstats
path: root/docs/getting.started.rst
diff options
context:
space:
mode:
authorTodd Willey <todd@rubidine.com>2010-07-15 00:48:44 -0400
committerTodd Willey <todd@rubidine.com>2010-07-15 00:48:44 -0400
commit31b546231174237be027147cb9807034b52fcedc (patch)
treea4774580cd0eebd1e31079a6f0195719a54a3001 /docs/getting.started.rst
parentc7f28358ad01e069ac60e4ee85c450c35c628dde (diff)
parent4253dd01389358a945ceb30c37a93865366c1783 (diff)
downloadnova-31b546231174237be027147cb9807034b52fcedc.tar.gz
nova-31b546231174237be027147cb9807034b52fcedc.tar.xz
nova-31b546231174237be027147cb9807034b52fcedc.zip
Merge branch 'master' into rackspace_api
Diffstat (limited to 'docs/getting.started.rst')
-rw-r--r--docs/getting.started.rst129
1 files changed, 95 insertions, 34 deletions
diff --git a/docs/getting.started.rst b/docs/getting.started.rst
index 777cd32e9..55a73dd00 100644
--- a/docs/getting.started.rst
+++ b/docs/getting.started.rst
@@ -1,38 +1,39 @@
-..
- 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.
- See the License for the specific language governing permissions and
- limitations under the License.
-
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)
+* 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)
+
* 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,30 +42,90 @@ 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 aoetools vlan curl
modprobe aoe
+ # python libraries
+ apt-get install -y 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
- # setup ldap (slap.sh as root will remove ldap and reinstall it)
- auth/slap.sh
+ 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)
+ 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
+ apt-get install -y python-libvirt
+ apt-get install -y kpartx kvm libvirt-bin
+ modprobe kvm
# 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)
+ apt-get install -y euca2ools
+
+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
+
+
+* 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)
+
+::
+
+ # 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
+---------
+
+Launch servers
+
+* rabbitmq
+* redis
+* slapd
+* nginx
+
+Launch nova components
+
+* nova-api
+* nova-compute
+* nova-objectstore
+* nova-volume