OpenStack devstack

Devstack is a script used primarily for upstream OpenStack development. This wiki page documents usage information for devstack on Fedora.

= Getting Devstack for Fedora =

Devstack has native support for Fedora in the master branch. The stable/essex and stable/diablo branches of devstack do not support Fedora. Optionally, you can grab a version from github that includes support for using Qpid as the messaging system instead of RabbitMq: russellb's github repo. The Qpid patch will be submitted soon now that Fedora support is in.

In either case, start by cloning the upstream devstack repo.

$ git clone git://github.com/openstack-dev/devstack.git

Using russellb's github repo
$ git remote add russellb git://github.com/russellb/devstack.git $ git remote update $ git checkout -b fedora-support russellb/fedora-support

= Initial Setup =

Devstack allows you to create a  file with settings specific to your environment. Creating this file isn't strictly necessary, but it's likely you'll want to use it at some point. Here are some options commonly used that are worth noting:

Set this option if you are using the version from russellb's github repo and would like to use Qpid instead of RabbitMQ.

ENABLED_SERVICES=$(echo ${ENABLED_SERVICES} | sed -e 's/rabbit/qpid/')

By default, devstack assumes your primary network interface is. Ethernet and other network device naming has changed in recent versions of Fedora. To see what your machine actually uses for a network device, run ifconfig and use the device that your machine uses to talk to the outside world. It is likely that this is.

HOST_IP_IFACE=em1 PUBLIC_INTERFACE=em1 VLAN_INTERFACE=em1 FLAT_INTERFACE=em1

When creating the stack deployment for the first time, you are going to see prompts for multiple passwords. Your results will be stored in the localrc file. If you wish to byp[ass this, and provide the passwords up front, add in the following lines with your own password:

MYSQL_PASSWORD=badpassword SERVICE_TOKEN=badpassword SERVICE_PASSWORD=badpassword ADMIN_PASSWORD=badpassword

To have devstack automatically load custom images, set the  option. If you're using russellb's version, you can have devstack load dabpb's Fedora 16 image:

IMAGE_URLS="http://berrange.fedorapeople.org/images/2012-02-29/f16-x86_64-openstack-sda.qcow2"

If you would like to load the Cirros images devstack uses by default, as well as the Fedora 16 image, use:

IMAGE_URLS="http://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-uec.tar.gz,http://berrange.fedorapeople.org/images/2012-02-29/f16-x86_64-openstack-sda.qcow2"

For a list of other variables that can be specified, including ones that allow you specify custom git repos and branches to use for testing, see the  file.

= Running Devstack =

To run devstack, you just run the  script.

$ ./stack.sh

= Using the environment =

Once the stack is up and running, you can use it like you would any other OpenStack deployment. Devstack includes a couple of files that will populate your environment with the needed variables for various tools to work:  and.

$ . ./openrc $ nova list

$ . ./eucarc $ euca-describe-instances

= Running the devstack exercises =

Devstack includes a set of exercise scripts to do some basic testing of the running stack. These tests are used by jenkins to gate commits to various OpenStack projects. To run them, run the  script.

$ ./exercise.sh

To see a list of tests:

$ ls exercises/ boot_from_volume.sh bundle.sh  client-args.sh  client-env.sh  euca.sh  floating_ips.sh  swift.sh  volumes.sh

To skip a set of exercises, specify a comma separated list of exercise names in the  variable:

$ SKIP_EXERCISES=switft,volumes $ ./exercise.sh