DevStack - an OpenStack Community Production
============================================

.. image:: assets/images/logo-blue.png

.. toctree::
   :glob:
   :maxdepth: 1

   overview
   configuration
   plugins
   faq
   changes
   contributing

Quick Start
-----------

#. Select a Linux Distribution

   Only Ubuntu 14.04 (Trusty), Fedora 20 and CentOS/RHEL 7 are
   documented here. OpenStack also runs and is packaged on other flavors
   of Linux such as OpenSUSE and Debian.

#. Install Selected OS

   In order to correctly install all the dependencies, we assume a
   specific minimal version of the supported distributions to make it as
   easy as possible. We recommend using a minimal install of Ubuntu or
   Fedora server in a VM if this is your first time.

#. Download DevStack

   ::

       git clone https://git.openstack.org/openstack-dev/devstack

   The ``devstack`` repo contains a script that installs OpenStack and
   templates for configuration files

#. Configure

   We recommend at least a :doc:`minimal
   configuration <configuration>` be set up.

#. Start the install

   ::

       cd devstack; ./stack.sh

   It takes a few minutes, we recommend `reading the
   script <stack.sh.html>`__ while it is building.

Guides
======

Walk through various setups used by stackers

.. toctree::
   :glob:
   :maxdepth: 1

   guides/single-vm
   guides/single-machine
   guides/multinode-lab
   guides/neutron
   guides/devstack-with-nested-kvm
   guides/nova

All-In-One Single VM
--------------------

Run :doc:`OpenStack in a VM <guides/single-vm>`. The VMs launched in your cloud will be slow as
they are running in QEMU (emulation), but it is useful if you don't have
spare hardware laying around. :doc:`[Read] <guides/single-vm>`

All-In-One Single Machine
-------------------------

Run :doc:`OpenStack on dedicated hardware <guides/single-machine>`  This can include a
server-class machine or a laptop at home.
:doc:`[Read] <guides/single-machine>`

Multi-Node Lab
--------------

Setup a :doc:`multi-node cluster <guides/multinode-lab>` with dedicated VLANs for VMs & Management.
:doc:`[Read] <guides/multinode-lab>`

DevStack with Neutron Networking
--------------------------------

Building a DevStack cluster with :doc:`Neutron Networking <guides/neutron>`.
This guide is meant for building lab environments with a dedicated
control node and multiple compute nodes.

DevStack with KVM-based Nested Virtualization
---------------------------------------------

Procedure to setup :doc:`DevStack with KVM-based Nested Virtualization
<guides/devstack-with-nested-kvm>`. With this setup, Nova instances
will be more performant than with plain QEMU emulation.

Nova and devstack
--------------------------------

Guide to working with nova features :doc:`Nova and devstack <guides/nova>`.

DevStack Documentation
======================

Overview
--------

:doc:`An overview of DevStack goals and priorities <overview>`

Configuration
-------------

:doc:`Configuring and customizing the stack <configuration>`

Plugins
-------

:doc:`Extending DevStack with new features <plugins>`

Recent Changes
--------------

:doc:`An incomplete summary of recent changes <changes>`

FAQ
---

:doc:`The DevStack FAQ <faq>`

Contributing
------------

:doc:`Pitching in to make DevStack a better place <contributing>`

Code
====

*A look at the bits that make it all go*

Scripts
-------

* `stack.sh <stack.sh.html>`__ - The main script
* `functions <functions.html>`__ - DevStack-specific functions
* `functions-common <functions-common.html>`__ - Functions shared with other projects
* `lib/apache <lib/apache.html>`__
* `lib/ceilometer <lib/ceilometer.html>`__
* `lib/ceph <lib/ceph.html>`__
* `lib/cinder <lib/cinder.html>`__
* `lib/database <lib/database.html>`__
* `lib/dstat <lib/dstat.html>`__
* `lib/glance <lib/glance.html>`__
* `lib/heat <lib/heat.html>`__
* `lib/horizon <lib/horizon.html>`__
* `lib/infra <lib/infra.html>`__
* `lib/ironic <lib/ironic.html>`__
* `lib/keystone <lib/keystone.html>`__
* `lib/ldap <lib/ldap.html>`__
* `lib/neutron <lib/neutron.html>`__
* `lib/nova <lib/nova.html>`__
* `lib/oslo <lib/oslo.html>`__
* `lib/rpc\_backend <lib/rpc_backend.html>`__
* `lib/sahara <lib/sahara.html>`__
* `lib/swift <lib/swift.html>`__
* `lib/tempest <lib/tempest.html>`__
* `lib/tls <lib/tls.html>`__
* `lib/trove <lib/trove.html>`__
* `lib/zaqar <lib/zaqar.html>`__
* `unstack.sh <unstack.sh.html>`__
* `clean.sh <clean.sh.html>`__
* `run\_tests.sh <run_tests.sh.html>`__

* `extras.d/50-ironic.sh <extras.d/50-ironic.sh.html>`__
* `extras.d/60-ceph.sh <extras.d/60-ceph.sh.html>`__
* `extras.d/70-sahara.sh <extras.d/70-sahara.sh.html>`__
* `extras.d/70-trove.sh <extras.d/70-trove.sh.html>`__
* `extras.d/70-tuskar.sh <extras.d/70-tuskar.sh.html>`__
* `extras.d/70-zaqar.sh <extras.d/70-zaqar.sh.html>`__
* `extras.d/80-tempest.sh <extras.d/80-tempest.sh.html>`__

* `inc/ini-config <inc/ini-config.html>`__
* `inc/meta-config <inc/meta-config.html>`__
* `inc/python <inc/python.html>`__

* `pkg/elasticsearch.sh <pkg/elasticsearch.sh.html>`_

Configuration
-------------

.. toctree::
   :glob:
   :maxdepth: 1

   local.conf
   stackrc
   openrc
   exerciserc
   eucarc

Tools
-----

* `tools/build\_docs.sh <tools/build_docs.sh.html>`__
* `tools/build\_venv.sh <tools/build_venv.sh.html>`__
* `tools/build\_wheels.sh <tools/build_wheels.sh.html>`__
* `tools/create-stack-user.sh <tools/create-stack-user.sh.html>`__
* `tools/create\_userrc.sh <tools/create_userrc.sh.html>`__
* `tools/fixup\_stuff.sh <tools/fixup_stuff.sh.html>`__
* `tools/info.sh <tools/info.sh.html>`__
* `tools/install\_pip.sh <tools/install_pip.sh.html>`__
* `tools/install\_prereqs.sh <tools/install_prereqs.sh.html>`__
* `tools/make\_cert.sh <tools/make_cert.sh.html>`__
* `tools/upload\_image.sh <tools/upload_image.sh.html>`__

Samples
-------

* `local.sh <samples/local.sh.html>`__

Exercises
---------

* `exercise.sh <exercise.sh.html>`__
* `exercises/aggregates.sh <exercises/aggregates.sh.html>`__
* `exercises/boot\_from\_volume.sh <exercises/boot_from_volume.sh.html>`__
* `exercises/bundle.sh <exercises/bundle.sh.html>`__
* `exercises/client-args.sh <exercises/client-args.sh.html>`__
* `exercises/client-env.sh <exercises/client-env.sh.html>`__
* `exercises/euca.sh <exercises/euca.sh.html>`__
* `exercises/floating\_ips.sh <exercises/floating_ips.sh.html>`__
* `exercises/horizon.sh <exercises/horizon.sh.html>`__
* `exercises/neutron-adv-test.sh <exercises/neutron-adv-test.sh.html>`__
* `exercises/sahara.sh <exercises/sahara.sh.html>`__
* `exercises/sec\_groups.sh <exercises/sec_groups.sh.html>`__
* `exercises/swift.sh <exercises/swift.sh.html>`__
* `exercises/trove.sh <exercises/trove.sh.html>`__
* `exercises/volumes.sh <exercises/volumes.sh.html>`__
* `exercises/zaqar.sh <exercises/zaqar.sh.html>`__