diff --git a/README b/README new file mode 100644 index 0000000000..c8f68c2fd5 --- /dev/null +++ b/README @@ -0,0 +1 @@ +All that's missing is the fork. Heh. \ No newline at end of file diff --git a/README.md b/README.md index 5c3289378a..89c15d9097 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,20 @@ DevStack is a set of scripts and utilities to quickly deploy an OpenStack cloud. +# Devstack + Multi-node Quantum Configurations + +This is a forked devstack repo maintained by del at nicira.com. +I have created it at the request of members of the community and will use +it to track work in progress and store sample multi-node quantum +configurations. Any diffs between this repo and the main devstack repo will +be periodically submitted for review and (where appropriate) inclusion in +the main repo. + +The sample configurations are stored in devstack/samples/scenarios. + +If you have any questions, please feel free to email Dave at the address above. +Feedback, suggestions, comments are appreciated. + + # Goals * To quickly build dev OpenStack environments in a clean Oneiric or Precise environment diff --git a/forkit.gif b/forkit.gif new file mode 100644 index 0000000000..a6a48b38fc Binary files /dev/null and b/forkit.gif differ diff --git a/index.html b/index.html new file mode 100644 index 0000000000..79eddc4d0f --- /dev/null +++ b/index.html @@ -0,0 +1,63 @@ + + + +
+ + +
+
++ Fork me? No, fork you! +
+ + + diff --git a/samples/scenarios/README.rst b/samples/scenarios/README.rst new file mode 100644 index 0000000000..d4cf8b24d1 --- /dev/null +++ b/samples/scenarios/README.rst @@ -0,0 +1,19 @@ +Sample Configurations +===================== + +This directory contains configurations for sample scenarios. Each directory +corresponds got a scenario. A single file captures the git/python version +and localrc information for a machine. + +Scenarios +--------- + +multinode-ovs: + + One controller node (gto), one compute node (mustang) + OVS plugin (without tunneling). + +multinode-ovs-tunnels: + + One controller node (gto), one compute node (mustang). + OVS plugin (with GRE tunneling). diff --git a/samples/scenarios/checkout.sh b/samples/scenarios/checkout.sh new file mode 100755 index 0000000000..e2ce17f48d --- /dev/null +++ b/samples/scenarios/checkout.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Simple script to setup localrc on test node. +# Execute this script from the root directory. For example: +# +# $ samples/scenarios/setup.sh +# +# Assumes your hostname has been set to one of gto, mustang, or charger. +# +# Modify the SCENARIO variable below to use a different scenario. + +HOSTNAME=`hostname` +SCENARIO=multinode-ovs +INFO_FILE=samples/scenarios/$SCENARIO/$HOSTNAME-info +STACK_ROOT=/opt/stack + +echo $INFO_FILE +for l in `grep git $INFO_FILE` +do + MOD=`echo $l | awk -F"|" '{ print $2; }'` + VER=`echo $l | awk -F"|" '{ print substr($3, 8, 7); }'` + + if [ $MOD != "git-core" ]; then + pushd $STACK_ROOT/$MOD + git checkout $VER + popd + fi +done diff --git a/samples/scenarios/configure.py b/samples/scenarios/configure.py new file mode 100755 index 0000000000..0a994f3484 --- /dev/null +++ b/samples/scenarios/configure.py @@ -0,0 +1,32 @@ +#!/usr/bin/python + +# Copyright (C) 2009-2012 Nicira Networks, Inc. All Rights Reserved. +# +# This software is provided only under the terms and conditions of a written +# license agreement with Nicira. If no such agreement applies to you, you are +# not authorized to use this software. Contact Nicira to obtain an appropriate +# license: www.nicira.com. +# +# Author(s): Dave Lapsley + +import os +import subprocess +import urllib + +stack_root = '/opt/stack' + +try: + os.mkdir(stack_root) +except OSError as e: + print 'Directory: %s' % e + +with open('repos.dat') as input: + for l in input.readlines(): + l = l.strip() + repo, commit = l.split() + host, path = urllib.splithost(repo) + repo_dir = (stack_root + '/' + + os.path.splitext(os.path.basename(path))[0]) + subprocess.call(['git', 'clone', repo, repo_dir]) + subprocess.call('cd %s && git checkout %s' % (repo_dir, commit), + shell=True) diff --git a/samples/scenarios/multinode-ovs-tunnels/charger-info b/samples/scenarios/multinode-ovs-tunnels/charger-info new file mode 100644 index 0000000000..1139945c69 --- /dev/null +++ b/samples/scenarios/multinode-ovs-tunnels/charger-info @@ -0,0 +1,103 @@ +git|glance|master[8e9e0ca] +git|keystone|master[198fe22] +git|nova|master[c147878] +git|python-keystoneclient|master[7b85329] +git|python-novaclient|master[f6014dd] +git|python-quantumclient|master[9b09f53] +git|quantum|master[540f1ed] +os|vendor=Ubuntu +os|release=11.10 +pkg|pep8|0.6.1-2ubuntu1 +pkg|pylint|0.23.0-1 +pkg|python-pip|1.0-1 +pkg|screen|4.0.3-14ubuntu8 +pkg|unzip|6.0-4ubuntu1 +pkg|wget|1.12-3.1ubuntu1 +pkg|psmisc|22.14-1 +pkg|git-core|1:1.7.5.4-1 +pkg|lsof|4.81.dfsg.1-1build1 +pkg|openssh-server|1:5.8p1-7ubuntu1 +pkg|vim-nox|2:7.3.154+hg~74503f6ee649-2ubuntu3 +pkg|locate|4.4.2-1ubuntu3 +pkg|python-virtualenv|1.6.4-0ubuntu1 +pkg|python-unittest2|0.5.1-1 +pkg|iputils-ping|3:20101006-1 +pkg|wget|1.12-3.1ubuntu1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|tcpdump|4.1.1-2ubuntu2 +pkg|euca2ools|2.0.0~bzr464-0ubuntu2 +pkg|lvm2|2.02.66-4ubuntu3 +pkg|open-iscsi|2.0.871-0ubuntu9 +pkg|open-iscsi-utils|2.0.871-0ubuntu9 +pkg|dnsmasq-base|2.57-1ubuntu1 +pkg|kpartx|0.4.9-2ubuntu1 +pkg|parted|2.3-6ubuntu3 +pkg|mysql-server| +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|gawk|1:3.1.8+dfsg-0.1build1 +pkg|iptables|1.4.10-1ubuntu1 +pkg|ebtables|2.0.9.2-2 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|sudo|1.7.4p6-1ubuntu2 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|libvirt-bin|0.9.2-4ubuntu15.2 +pkg|vlan|1.9-3ubuntu3.1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|rabbitmq-server| +pkg|socat|1.7.1.3-1.1ubuntu1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-migrate|0.7.1-1 +pkg|python-gflags|1.5.1-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-libvirt|0.9.2-4ubuntu15.2 +pkg|python-libxml2|2.7.8.dfsg-4ubuntu0.2 +pkg|python-routes|1.12.3-1 +pkg|python-netaddr|0.7.5-4 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-cheetah|2.4.4-2ubuntu1 +pkg|python-carrot|0.10.7-0ubuntu1 +pkg|python-tempita|0.5.1-1 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-suds|0.4.1-2 +pkg|python-lockfile|1:0.8-2 +pkg|python-m2crypto|0.20.1+dfsg1-1.1ubuntu1 +pkg|python-boto|2.0-0ubuntu1 +pkg|python-kombu|1.0.4-2 +pkg|python-feedparser|5.0.1-1 +pkg|python-iso8601|0.1.4-1 +pkg|python-dateutil|1.4.1-4 +pip|pycrypto|2.3 +pip|passlib|1.5.3 +localrc| +localrc| +localrc| +localrc| +localrc| +localrc|ENABLED_SERVICES=n-cpu,n-api,quantum,q-agt +localrc|FIXED_NETWORK_SIZE=4096 +localrc|FIXED_RANGE=10.4.128.0/20 +localrc|FLAT_INTERFACE=eth1 +localrc|FLOATING_RANGE=172.16.142.128/25 +localrc|GLANCE_HOSTPORT=192.168.56.3:9292 +localrc|HOST_IP=192.168.56.4 +localrc|KEYSTONE_HOST=192.168.56.3 +localrc|LIBVIRT_TYPE=qemu +localrc|LOGFILE=/home/dlapsley/logs/stack.log +localrc|MULTI_HOST=0 +localrc|MYSQL_HOST=192.168.56.3 +localrc|OFFLINE=0 +localrc|Q_INTERFACE=eth1 +localrc|Q_PLUGIN=openvswitch +localrc|Q_TUNNEL_ENABLE=1 +localrc|Q_TUNNEL_REMOTE_IP_FILE=/home/dlapsley/devstack/samples/scenarios/multinode-ovs-tunnels/remote-ips.txt +localrc|RABBIT_HOST=192.168.56.3 +localrc|RECLONE=no +localrc|SERVICE_TOKEN=xyzpdqlazydog +localrc|SYSLOG_HOST=192.168.56.3 +localrc|SYSLOG=True + diff --git a/samples/scenarios/multinode-ovs-tunnels/gto-info b/samples/scenarios/multinode-ovs-tunnels/gto-info new file mode 100644 index 0000000000..e4e7ec8ef4 --- /dev/null +++ b/samples/scenarios/multinode-ovs-tunnels/gto-info @@ -0,0 +1,154 @@ +git|glance|master[8e9e0ca] +git|horizon|master[c555673] +git|keystone|master[198fe22] +git|nova|master[adb2124] +git|noVNC|master[22b9a75] +git|python-keystoneclient|master[7b85329] +git|python-novaclient|master[f6014dd] +git|python-quantumclient|master[9b09f53] +git|quantum|master[540f1ed] +os|vendor=Ubuntu +os|release=11.10 +pkg|pep8|0.6.1-2ubuntu1 +pkg|pylint|0.23.0-1 +pkg|python-pip|1.0-1 +pkg|screen|4.0.3-14ubuntu8 +pkg|unzip|6.0-4ubuntu1 +pkg|wget|1.12-3.1ubuntu1 +pkg|psmisc|22.14-1 +pkg|git-core|1:1.7.5.4-1 +pkg|lsof|4.81.dfsg.1-1build1 +pkg|openssh-server|1:5.8p1-7ubuntu1 +pkg|vim-nox|2:7.3.154+hg~74503f6ee649-2ubuntu3 +pkg|locate|4.4.2-1ubuntu3 +pkg|python-virtualenv|1.6.4-0ubuntu1 +pkg|python-unittest2|0.5.1-1 +pkg|iputils-ping|3:20101006-1 +pkg|wget|1.12-3.1ubuntu1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|tcpdump|4.1.1-2ubuntu2 +pkg|euca2ools|2.0.0~bzr464-0ubuntu2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-routes|1.12.3-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-wsgiref| +pkg|python-pastedeploy|1.5.0-2 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-iso8601|0.1.4-1 +pkg|python-setuptools|0.6.16-1ubuntu0.1 +pkg|python-dev|2.7.2-7ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|python-pastescript|1.7.3-7 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|python-pysqlite2|2.6.3-2 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-webob|1.0.8-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-routes|1.12.3-1 +pkg|libldap2-dev|2.4.25-1.1ubuntu4.1 +pkg|libsasl2-dev|2.1.24~rc1.dfsg1+cvs2011-05-23-4ubuntu2 +pkg|python-bcrypt|0.1-1build2 +pkg|python-dateutil|1.4.1-4 +pkg|dnsmasq-base|2.57-1ubuntu1 +pkg|kpartx|0.4.9-2ubuntu1 +pkg|parted|2.3-6ubuntu3 +pkg|mysql-server|5.1.61-0ubuntu0.11.10.1 +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|gawk|1:3.1.8+dfsg-0.1build1 +pkg|iptables|1.4.10-1ubuntu1 +pkg|ebtables|2.0.9.2-2 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|sudo|1.7.4p6-1ubuntu2 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|libvirt-bin|0.9.2-4ubuntu15.2 +pkg|vlan|1.9-3ubuntu3.1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|rabbitmq-server|2.5.0-1ubuntu2 +pkg|socat|1.7.1.3-1.1ubuntu1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-migrate|0.7.1-1 +pkg|python-gflags|1.5.1-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-libvirt|0.9.2-4ubuntu15.2 +pkg|python-libxml2|2.7.8.dfsg-4ubuntu0.2 +pkg|python-routes|1.12.3-1 +pkg|python-netaddr|0.7.5-4 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-cheetah|2.4.4-2ubuntu1 +pkg|python-carrot|0.10.7-0ubuntu1 +pkg|python-tempita|0.5.1-1 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-suds|0.4.1-2 +pkg|python-lockfile|1:0.8-2 +pkg|python-m2crypto|0.20.1+dfsg1-1.1ubuntu1 +pkg|python-boto|2.0-0ubuntu1 +pkg|python-kombu|1.0.4-2 +pkg|python-feedparser|5.0.1-1 +pkg|python-iso8601|0.1.4-1 +pkg|tgt|1:1.0.17-1ubuntu1 +pkg|lvm2|2.02.66-4ubuntu3 +pkg|python-numpy|1:1.5.1-2ubuntu2 +pkg|apache2|2.2.20-1ubuntu1.2 +pkg|libapache2-mod-wsgi|3.3-2ubuntu3 +pkg|python-dateutil|1.4.1-4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-anyjson|0.3.1-1 +pkg|python-routes|1.12.3-1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-webob|1.0.8-1 +pkg|python-kombu|1.0.4-2 +pkg|pylint|0.23.0-1 +pkg|pep8|0.6.1-2ubuntu1 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-nose|1.0.0-1ubuntu1 +pkg|python-sphinx|1.0.7+dfsg-1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-kombu|1.0.4-2 +pkg|python-coverage|3.4-1 +pkg|python-cherrypy3|3.1.2-1 +pkg|python-django|1.3-2ubuntu1.1 +pkg|python-django-mailer|0.2a1.dev3-0ubuntu1 +pkg|python-django-nose|0.1.2-2 +pkg|python-django-registration|0.7-2 +pkg|python-migrate|0.7.1-1 +pip|django-nose-selenium|0.7.3 +pip|pycrypto|2.3 +pip|python-cloudfiles|1.7.10 +pip|passlib|1.5.3 +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc|ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-net,n-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit,quantum,q-svc,q-agt +localrc|FIXED_NETWORK_SIZE=4096 +localrc|FIXED_RANGE=10.4.128.0/20 +localrc|FLAT_INTERFACE=eth1 +localrc|FLOATING_RANGE=172.16.142.128/25 +localrc|HOST_IP=192.168.56.3 +localrc|LIBVIRT_TYPE=qemu +localrc|LOGFILE=/home/dlapsley/logs/stack.log +localrc|MULTI_HOST=0 +localrc|OFFLINE=0 +localrc|Q_INTERFACE=eth1 +localrc|Q_PLUGIN=openvswitch +localrc|Q_TUNNEL_ENABLE=1 +localrc|Q_TUNNEL_REMOTE_IP_FILE=/home/dlapsley/devstack/samples/scenarios/multinode-ovs-tunnels/remote-ips.txt +localrc|RECLONE=no +localrc|SERVICE_TOKEN=xyzpdqlazydog +localrc|SYSLOG=True diff --git a/samples/scenarios/multinode-ovs-tunnels/mustang-info b/samples/scenarios/multinode-ovs-tunnels/mustang-info new file mode 100644 index 0000000000..b9aa310259 --- /dev/null +++ b/samples/scenarios/multinode-ovs-tunnels/mustang-info @@ -0,0 +1,103 @@ +git|glance|master[8e9e0ca] +git|keystone|master[198fe22] +git|nova|master[c147878] +git|python-keystoneclient|master[7b85329] +git|python-novaclient|master[f6014dd] +git|python-quantumclient|master[9b09f53] +git|quantum|master[540f1ed] +os|vendor=Ubuntu +os|release=11.10 +pkg|pep8|0.6.1-2ubuntu1 +pkg|pylint|0.23.0-1 +pkg|python-pip|1.0-1 +pkg|screen|4.0.3-14ubuntu8 +pkg|unzip|6.0-4ubuntu1 +pkg|wget|1.12-3.1ubuntu1 +pkg|psmisc|22.14-1 +pkg|git-core|1:1.7.5.4-1 +pkg|lsof|4.81.dfsg.1-1build1 +pkg|openssh-server|1:5.8p1-7ubuntu1 +pkg|vim-nox|2:7.3.154+hg~74503f6ee649-2ubuntu3 +pkg|locate|4.4.2-1ubuntu3 +pkg|python-virtualenv|1.6.4-0ubuntu1 +pkg|python-unittest2|0.5.1-1 +pkg|iputils-ping|3:20101006-1 +pkg|wget|1.12-3.1ubuntu1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|tcpdump|4.1.1-2ubuntu2 +pkg|euca2ools|2.0.0~bzr464-0ubuntu2 +pkg|lvm2|2.02.66-4ubuntu3 +pkg|open-iscsi|2.0.871-0ubuntu9 +pkg|open-iscsi-utils|2.0.871-0ubuntu9 +pkg|dnsmasq-base|2.57-1ubuntu1 +pkg|kpartx|0.4.9-2ubuntu1 +pkg|parted|2.3-6ubuntu3 +pkg|mysql-server| +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|gawk|1:3.1.8+dfsg-0.1build1 +pkg|iptables|1.4.10-1ubuntu1 +pkg|ebtables|2.0.9.2-2 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|sudo|1.7.4p6-1ubuntu2 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|libvirt-bin|0.9.2-4ubuntu15.2 +pkg|vlan|1.9-3ubuntu3.1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|rabbitmq-server| +pkg|socat|1.7.1.3-1.1ubuntu1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-migrate|0.7.1-1 +pkg|python-gflags|1.5.1-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-libvirt|0.9.2-4ubuntu15.2 +pkg|python-libxml2|2.7.8.dfsg-4ubuntu0.2 +pkg|python-routes|1.12.3-1 +pkg|python-netaddr|0.7.5-4 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-cheetah|2.4.4-2ubuntu1 +pkg|python-carrot|0.10.7-0ubuntu1 +pkg|python-tempita|0.5.1-1 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-suds|0.4.1-2 +pkg|python-lockfile|1:0.8-2 +pkg|python-m2crypto|0.20.1+dfsg1-1.1ubuntu1 +pkg|python-boto|2.0-0ubuntu1 +pkg|python-kombu|1.0.4-2 +pkg|python-feedparser|5.0.1-1 +pkg|python-iso8601|0.1.4-1 +pkg|python-dateutil|1.4.1-4 +pip|pycrypto|2.3 +pip|passlib|1.5.3 +localrc| +localrc| +localrc| +localrc| +localrc| +localrc|ENABLED_SERVICES=n-cpu,n-api,quantum,q-agt +localrc|FIXED_NETWORK_SIZE=4096 +localrc|FIXED_RANGE=10.4.128.0/20 +localrc|FLAT_INTERFACE=eth1 +localrc|FLOATING_RANGE=172.16.142.128/25 +localrc|GLANCE_HOSTPORT=192.168.56.3:9292 +localrc|HOST_IP=192.168.56.2 +localrc|KEYSTONE_HOST=192.168.56.3 +localrc|LIBVIRT_TYPE=qemu +localrc|LOGFILE=/home/dlapsley/logs/stack.log +localrc|MULTI_HOST=0 +localrc|MYSQL_HOST=192.168.56.3 +localrc|OFFLINE=0 +localrc|Q_HOST=192.168.56.3 +localrc|Q_INTERFACE=eth1 +localrc|Q_PLUGIN=openvswitch +localrc|Q_TUNNEL_ENABLE=1 +localrc|Q_TUNNEL_REMOTE_IP_FILE=/home/dlapsley/devstack/samples/scenarios/multinode-ovs-tunnels/remote-ips.txt +localrc|RABBIT_HOST=192.168.56.3 +localrc|RECLONE=no +localrc|SERVICE_TOKEN=xyzpdqlazydog +localrc|SYSLOG_HOST=192.168.56.3 +localrc|SYSLOG=True diff --git a/samples/scenarios/multinode-ovs-tunnels/remote-ips.txt b/samples/scenarios/multinode-ovs-tunnels/remote-ips.txt new file mode 100644 index 0000000000..8e042047fe --- /dev/null +++ b/samples/scenarios/multinode-ovs-tunnels/remote-ips.txt @@ -0,0 +1,3 @@ +192.168.56.2 +192.168.56.3 +192.168.56.4 diff --git a/samples/scenarios/multinode-ovs/charger-info b/samples/scenarios/multinode-ovs/charger-info new file mode 100644 index 0000000000..f12abd3d71 --- /dev/null +++ b/samples/scenarios/multinode-ovs/charger-info @@ -0,0 +1,101 @@ +git|glance|master[8e9e0ca] +git|keystone|master[198fe22] +git|nova|master[c147878] +git|python-keystoneclient|master[7b85329] +git|python-novaclient|master[f6014dd] +git|python-quantumclient|master[9b09f53] +git|quantum|master[540f1ed] +os|vendor=Ubuntu +os|release=11.10 +pkg|pep8|0.6.1-2ubuntu1 +pkg|pylint|0.23.0-1 +pkg|python-pip|1.0-1 +pkg|screen|4.0.3-14ubuntu8 +pkg|unzip|6.0-4ubuntu1 +pkg|wget|1.12-3.1ubuntu1 +pkg|psmisc|22.14-1 +pkg|git-core|1:1.7.5.4-1 +pkg|lsof|4.81.dfsg.1-1build1 +pkg|openssh-server|1:5.8p1-7ubuntu1 +pkg|vim-nox|2:7.3.154+hg~74503f6ee649-2ubuntu3 +pkg|locate|4.4.2-1ubuntu3 +pkg|python-virtualenv|1.6.4-0ubuntu1 +pkg|python-unittest2|0.5.1-1 +pkg|iputils-ping|3:20101006-1 +pkg|wget|1.12-3.1ubuntu1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|tcpdump|4.1.1-2ubuntu2 +pkg|euca2ools|2.0.0~bzr464-0ubuntu2 +pkg|lvm2|2.02.66-4ubuntu3 +pkg|open-iscsi|2.0.871-0ubuntu9 +pkg|open-iscsi-utils|2.0.871-0ubuntu9 +pkg|dnsmasq-base|2.57-1ubuntu1 +pkg|kpartx|0.4.9-2ubuntu1 +pkg|parted|2.3-6ubuntu3 +pkg|mysql-server| +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|gawk|1:3.1.8+dfsg-0.1build1 +pkg|iptables|1.4.10-1ubuntu1 +pkg|ebtables|2.0.9.2-2 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|sudo|1.7.4p6-1ubuntu2 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|libvirt-bin|0.9.2-4ubuntu15.2 +pkg|vlan|1.9-3ubuntu3.1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|rabbitmq-server| +pkg|socat|1.7.1.3-1.1ubuntu1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-migrate|0.7.1-1 +pkg|python-gflags|1.5.1-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-libvirt|0.9.2-4ubuntu15.2 +pkg|python-libxml2|2.7.8.dfsg-4ubuntu0.2 +pkg|python-routes|1.12.3-1 +pkg|python-netaddr|0.7.5-4 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-cheetah|2.4.4-2ubuntu1 +pkg|python-carrot|0.10.7-0ubuntu1 +pkg|python-tempita|0.5.1-1 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-suds|0.4.1-2 +pkg|python-lockfile|1:0.8-2 +pkg|python-m2crypto|0.20.1+dfsg1-1.1ubuntu1 +pkg|python-boto|2.0-0ubuntu1 +pkg|python-kombu|1.0.4-2 +pkg|python-feedparser|5.0.1-1 +pkg|python-iso8601|0.1.4-1 +pkg|python-dateutil|1.4.1-4 +pip|pycrypto|2.3 +pip|passlib|1.5.3 +localrc| +localrc| +localrc| +localrc| +localrc| +localrc|ENABLED_SERVICES=n-cpu,n-api,quantum,q-agt +localrc|FIXED_NETWORK_SIZE=4096 +localrc|FIXED_RANGE=10.4.128.0/20 +localrc|FLAT_INTERFACE=eth1 +localrc|FLOATING_RANGE=172.16.142.128/25 +localrc|GLANCE_HOSTPORT=192.168.56.3:9292 +localrc|HOST_IP=192.168.56.4 +localrc|KEYSTONE_HOST=192.168.56.3 +localrc|LIBVIRT_TYPE=qemu +localrc|LOGFILE=/home/dlapsley/logs/stack.log +localrc|MULTI_HOST=0 +localrc|MYSQL_HOST=192.168.56.3 +localrc|OFFLINE=0 +localrc|Q_HOST=192.168.56.3 +localrc|Q_INTERFACE=eth1 +localrc|Q_PLUGIN=openvswitch +localrc|RABBIT_HOST=192.168.56.3 +localrc|RECLONE=no +localrc|SERVICE_TOKEN=xyzpdqlazydog +localrc|SYSLOG_HOST=192.168.56.3 +localrc|SYSLOG=True diff --git a/samples/scenarios/multinode-ovs/gto-info b/samples/scenarios/multinode-ovs/gto-info new file mode 100644 index 0000000000..26064303ee --- /dev/null +++ b/samples/scenarios/multinode-ovs/gto-info @@ -0,0 +1,152 @@ +git|glance|master[8e9e0ca] +git|horizon|master[c555673] +git|keystone|master[198fe22] +git|nova|master[adb2124] +git|noVNC|master[22b9a75] +git|python-keystoneclient|master[7b85329] +git|python-novaclient|master[f6014dd] +git|python-quantumclient|master[9b09f53] +git|quantum|master[540f1ed] +os|vendor=Ubuntu +os|release=11.10 +pkg|pep8|0.6.1-2ubuntu1 +pkg|pylint|0.23.0-1 +pkg|python-pip|1.0-1 +pkg|screen|4.0.3-14ubuntu8 +pkg|unzip|6.0-4ubuntu1 +pkg|wget|1.12-3.1ubuntu1 +pkg|psmisc|22.14-1 +pkg|git-core|1:1.7.5.4-1 +pkg|lsof|4.81.dfsg.1-1build1 +pkg|openssh-server|1:5.8p1-7ubuntu1 +pkg|vim-nox|2:7.3.154+hg~74503f6ee649-2ubuntu3 +pkg|locate|4.4.2-1ubuntu3 +pkg|python-virtualenv|1.6.4-0ubuntu1 +pkg|python-unittest2|0.5.1-1 +pkg|iputils-ping|3:20101006-1 +pkg|wget|1.12-3.1ubuntu1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|tcpdump|4.1.1-2ubuntu2 +pkg|euca2ools|2.0.0~bzr464-0ubuntu2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-routes|1.12.3-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-wsgiref| +pkg|python-pastedeploy|1.5.0-2 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-iso8601|0.1.4-1 +pkg|python-setuptools|0.6.16-1ubuntu0.1 +pkg|python-dev|2.7.2-7ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|python-pastescript|1.7.3-7 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|python-pysqlite2|2.6.3-2 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-webob|1.0.8-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-routes|1.12.3-1 +pkg|libldap2-dev|2.4.25-1.1ubuntu4.1 +pkg|libsasl2-dev|2.1.24~rc1.dfsg1+cvs2011-05-23-4ubuntu2 +pkg|python-bcrypt|0.1-1build2 +pkg|python-dateutil|1.4.1-4 +pkg|dnsmasq-base|2.57-1ubuntu1 +pkg|kpartx|0.4.9-2ubuntu1 +pkg|parted|2.3-6ubuntu3 +pkg|mysql-server|5.1.61-0ubuntu0.11.10.1 +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|gawk|1:3.1.8+dfsg-0.1build1 +pkg|iptables|1.4.10-1ubuntu1 +pkg|ebtables|2.0.9.2-2 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|sudo|1.7.4p6-1ubuntu2 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|libvirt-bin|0.9.2-4ubuntu15.2 +pkg|vlan|1.9-3ubuntu3.1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|rabbitmq-server|2.5.0-1ubuntu2 +pkg|socat|1.7.1.3-1.1ubuntu1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-migrate|0.7.1-1 +pkg|python-gflags|1.5.1-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-libvirt|0.9.2-4ubuntu15.2 +pkg|python-libxml2|2.7.8.dfsg-4ubuntu0.2 +pkg|python-routes|1.12.3-1 +pkg|python-netaddr|0.7.5-4 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-cheetah|2.4.4-2ubuntu1 +pkg|python-carrot|0.10.7-0ubuntu1 +pkg|python-tempita|0.5.1-1 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-suds|0.4.1-2 +pkg|python-lockfile|1:0.8-2 +pkg|python-m2crypto|0.20.1+dfsg1-1.1ubuntu1 +pkg|python-boto|2.0-0ubuntu1 +pkg|python-kombu|1.0.4-2 +pkg|python-feedparser|5.0.1-1 +pkg|python-iso8601|0.1.4-1 +pkg|tgt|1:1.0.17-1ubuntu1 +pkg|lvm2|2.02.66-4ubuntu3 +pkg|python-numpy|1:1.5.1-2ubuntu2 +pkg|apache2|2.2.20-1ubuntu1.2 +pkg|libapache2-mod-wsgi|3.3-2ubuntu3 +pkg|python-dateutil|1.4.1-4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-anyjson|0.3.1-1 +pkg|python-routes|1.12.3-1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-webob|1.0.8-1 +pkg|python-kombu|1.0.4-2 +pkg|pylint|0.23.0-1 +pkg|pep8|0.6.1-2ubuntu1 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-nose|1.0.0-1ubuntu1 +pkg|python-sphinx|1.0.7+dfsg-1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-kombu|1.0.4-2 +pkg|python-coverage|3.4-1 +pkg|python-cherrypy3|3.1.2-1 +pkg|python-django|1.3-2ubuntu1.1 +pkg|python-django-mailer|0.2a1.dev3-0ubuntu1 +pkg|python-django-nose|0.1.2-2 +pkg|python-django-registration|0.7-2 +pkg|python-migrate|0.7.1-1 +pip|django-nose-selenium|0.7.3 +pip|pycrypto|2.3 +pip|python-cloudfiles|1.7.10 +pip|passlib|1.5.3 +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc| +localrc|ENABLED_SERVICES=g-api,g-reg,key,n-api,n-crt,n-obj,n-net,n-vol,n-sch,n-novnc,n-xvnc,n-cauth,horizon,mysql,rabbit,quantum,q-svc,q-agt +localrc|FIXED_NETWORK_SIZE=4096 +localrc|FIXED_RANGE=10.4.128.0/20 +localrc|FLAT_INTERFACE=eth1 +localrc|FLOATING_RANGE=172.16.142.128/25 +localrc|HOST_IP=192.168.56.3 +localrc|LIBVIRT_TYPE=qemu +localrc|LOGFILE=/home/dlapsley/logs/stack.log +localrc|MULTI_HOST=0 +localrc|OFFLINE=0 +localrc|Q_INTERFACE=eth1 +localrc|Q_PLUGIN=openvswitch +localrc|RECLONE=no +localrc|SERVICE_TOKEN=xyzpdqlazydog +localrc|SYSLOG=True diff --git a/samples/scenarios/multinode-ovs/mustang-info b/samples/scenarios/multinode-ovs/mustang-info new file mode 100644 index 0000000000..b7c00d269f --- /dev/null +++ b/samples/scenarios/multinode-ovs/mustang-info @@ -0,0 +1,101 @@ +git|glance|master[8e9e0ca] +git|keystone|master[198fe22] +git|nova|master[c147878] +git|python-keystoneclient|master[7b85329] +git|python-novaclient|master[f6014dd] +git|python-quantumclient|master[9b09f53] +git|quantum|master[540f1ed] +os|vendor=Ubuntu +os|release=11.10 +pkg|pep8|0.6.1-2ubuntu1 +pkg|pylint|0.23.0-1 +pkg|python-pip|1.0-1 +pkg|screen|4.0.3-14ubuntu8 +pkg|unzip|6.0-4ubuntu1 +pkg|wget|1.12-3.1ubuntu1 +pkg|psmisc|22.14-1 +pkg|git-core|1:1.7.5.4-1 +pkg|lsof|4.81.dfsg.1-1build1 +pkg|openssh-server|1:5.8p1-7ubuntu1 +pkg|vim-nox|2:7.3.154+hg~74503f6ee649-2ubuntu3 +pkg|locate|4.4.2-1ubuntu3 +pkg|python-virtualenv|1.6.4-0ubuntu1 +pkg|python-unittest2|0.5.1-1 +pkg|iputils-ping|3:20101006-1 +pkg|wget|1.12-3.1ubuntu1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|tcpdump|4.1.1-2ubuntu2 +pkg|euca2ools|2.0.0~bzr464-0ubuntu2 +pkg|lvm2|2.02.66-4ubuntu3 +pkg|open-iscsi|2.0.871-0ubuntu9 +pkg|open-iscsi-utils|2.0.871-0ubuntu9 +pkg|dnsmasq-base|2.57-1ubuntu1 +pkg|kpartx|0.4.9-2ubuntu1 +pkg|parted|2.3-6ubuntu3 +pkg|mysql-server| +pkg|python-mysqldb|1.2.3-0ubuntu1 +pkg|python-xattr|0.6-1ubuntu2 +pkg|python-lxml|2.3-0.1build1 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|gawk|1:3.1.8+dfsg-0.1build1 +pkg|iptables|1.4.10-1ubuntu1 +pkg|ebtables|2.0.9.2-2 +pkg|sqlite3|3.7.7-2ubuntu2 +pkg|sudo|1.7.4p6-1ubuntu2 +pkg|kvm|1:84+dfsg-0ubuntu16+0.14.1+noroms+0ubuntu6.2 +pkg|libvirt-bin|0.9.2-4ubuntu15.2 +pkg|vlan|1.9-3ubuntu3.1 +pkg|curl|7.21.6-3ubuntu3.2 +pkg|rabbitmq-server| +pkg|socat|1.7.1.3-1.1ubuntu1 +pkg|python-mox|0.5.3-1ubuntu4 +pkg|python-paste|1.7.5.1-4ubuntu1 +pkg|python-migrate|0.7.1-1 +pkg|python-gflags|1.5.1-1 +pkg|python-greenlet|0.3.1-1ubuntu4 +pkg|python-libvirt|0.9.2-4ubuntu15.2 +pkg|python-libxml2|2.7.8.dfsg-4ubuntu0.2 +pkg|python-routes|1.12.3-1 +pkg|python-netaddr|0.7.5-4 +pkg|python-pastedeploy|1.5.0-2 +pkg|python-eventlet|0.9.15-0ubuntu4 +pkg|python-cheetah|2.4.4-2ubuntu1 +pkg|python-carrot|0.10.7-0ubuntu1 +pkg|python-tempita|0.5.1-1 +pkg|python-sqlalchemy|0.6.8-1 +pkg|python-suds|0.4.1-2 +pkg|python-lockfile|1:0.8-2 +pkg|python-m2crypto|0.20.1+dfsg1-1.1ubuntu1 +pkg|python-boto|2.0-0ubuntu1 +pkg|python-kombu|1.0.4-2 +pkg|python-feedparser|5.0.1-1 +pkg|python-iso8601|0.1.4-1 +pkg|python-dateutil|1.4.1-4 +pip|pycrypto|2.3 +pip|passlib|1.5.3 +localrc| +localrc| +localrc| +localrc| +localrc| +localrc|ENABLED_SERVICES=n-cpu,n-api,quantum,q-agt +localrc|FIXED_NETWORK_SIZE=4096 +localrc|FIXED_RANGE=10.4.128.0/20 +localrc|FLAT_INTERFACE=eth1 +localrc|FLOATING_RANGE=172.16.142.128/25 +localrc|GLANCE_HOSTPORT=192.168.56.3:9292 +localrc|HOST_IP=192.168.56.2 +localrc|KEYSTONE_HOST=192.168.56.3 +localrc|LIBVIRT_TYPE=qemu +localrc|LOGFILE=/home/dlapsley/logs/stack.log +localrc|MULTI_HOST=0 +localrc|MYSQL_HOST=192.168.56.3 +localrc|OFFLINE=0 +localrc|Q_HOST=192.168.56.3 +localrc|Q_INTERFACE=eth1 +localrc|Q_PLUGIN=openvswitch +localrc|RABBIT_HOST=192.168.56.3 +localrc|RECLONE=no +localrc|SERVICE_TOKEN=xyzpdqlazydog +localrc|SYSLOG_HOST=192.168.56.3 +localrc|SYSLOG=True diff --git a/samples/scenarios/repos.dat b/samples/scenarios/repos.dat new file mode 100644 index 0000000000..78f3a92e0c --- /dev/null +++ b/samples/scenarios/repos.dat @@ -0,0 +1,9 @@ +https://github.com/openstack/nova.git adb2124 +https://github.com/openstack/glance.git 8e9e0ca +https://github.com/openstack/keystone.git 198fe22 +https://github.com/cloudbuilders/noVNC.git 22b9a75 +https://github.com/openstack/horizon.git c555673 +https://github.com/openstack/python-novaclient.git f6014dd +https://github.com/openstack/python-keystoneclient 7b85329 +https://github.com/openstack/quantum 540f1ed +https://github.com/openstack/python-quantumclient 9b09f53 diff --git a/samples/scenarios/setup.sh b/samples/scenarios/setup.sh new file mode 100755 index 0000000000..b6a7373e9a --- /dev/null +++ b/samples/scenarios/setup.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# Simple script to setup localrc on test node. +# Execute this script from the root directory. For example: +# +# $ samples/scenarios/setup.sh +# +# Assumes your hostname has been set to one of gto, mustang, or charger. +# +# Modify the SCENARIO variable below to use a different scenario. + +HOSTNAME=`hostname` +SCENARIO=multinode-ovs-tunnels +INFO_FILE=samples/scenarios/$SCENARIO/$HOSTNAME-info +echo $INFO_FILE +grep localrc $INFO_FILE | awk -F"|" '{ if (length($2)) { print $2; } }' > localrc diff --git a/stack.sh b/stack.sh index 444a738154..23c46fda68 100755 --- a/stack.sh +++ b/stack.sh @@ -107,7 +107,7 @@ if [[ $EUID -eq 0 ]]; then # since this script runs as a normal user, we need to give that user # ability to run sudo - dpkg -l sudo || apt_get update && install_package sudo + dpkg -l sudo || apt_get update && apt_get install sudo if ! getent passwd stack >/dev/null; then echo "Creating a user called stack" @@ -182,6 +182,12 @@ Q_PLUGIN=${Q_PLUGIN:-openvswitch} Q_PORT=${Q_PORT:-9696} # Default Quantum Host Q_HOST=${Q_HOST:-localhost} +# Tunneling support. +Q_TUNNEL_ENABLE=${Q_TUNNEL_ENABLE:-0} +# Tunneling links. +Q_TUNNEL_REMOTE_IP_FILE=${Q_TUNNEL_REMOTE_IP_FILE:-/dev/null} +Q_TUNNEL_TUN_BRIDGE=${Q_TUNNEL_TUN_BRIDGE:-br-tun} +Q_TUNNEL_INT_BRIDGE=${Q_TUNNEL_INT_BRIDGE:-br-int} # Default Melange Port M_PORT=${M_PORT:-9898} @@ -268,6 +274,29 @@ function read_password { set -o xtrace } +# is_service_enabled() checks if the service(s) specified as arguments are +# enabled by the user in **ENABLED_SERVICES**. +# +# If there are multiple services specified as arguments the test performs a +# boolean OR or if any of the services specified on the command line +# return true. +# +# There is a special cases for some 'catch-all' services:: +# **nova** returns true if any service enabled start with **n-** +# **glance** returns true if any service enabled start with **g-** +# **quantum** returns true if any service enabled start with **q-** + +function is_service_enabled() { + services=$@ + for service in ${services}; do + [[ ,${ENABLED_SERVICES}, =~ ,${service}, ]] && return 0 + [[ ${service} == "nova" && ${ENABLED_SERVICES} =~ "n-" ]] && return 0 + [[ ${service} == "glance" && ${ENABLED_SERVICES} =~ "g-" ]] && return 0 + [[ ${service} == "quantum" && ${ENABLED_SERVICES} =~ "q-" ]] && return 0 + done + return 1 +} + # Nova Network Configuration # -------------------------- @@ -591,7 +620,7 @@ function get_packages() { # install apt requirements apt_get update -install_package $(get_packages $FILES/apts) +apt_get install $(get_packages $FILES/apts) # install python requirements pip_install $(get_packages $FILES/pips | sort -u) @@ -625,6 +654,9 @@ if is_service_enabled horizon; then fi if is_service_enabled quantum; then git_clone $QUANTUM_CLIENT_REPO $QUANTUM_CLIENT_DIR $QUANTUM_CLIENT_BRANCH + if [[ "$Q_PLUGIN" = "openvswitch" ]]; then + git_clone $QUANTUM_REPO $QUANTUM_DIR $QUANTUM_BRANCH + fi fi if is_service_enabled q-svc; then # quantum @@ -678,7 +710,7 @@ fi # ------ if [[ $SYSLOG != "False" ]]; then - install_package rsyslog-relp + apt_get install -y rsyslog-relp if [[ "$SYSLOG_HOST" = "$HOST_IP" ]]; then # Configure the master host to receive cat <