Ansible based project for setting up TripleO virtual environments
Shell Python
Latest commit 5d91755 Feb 24, 2017 @weshayutin weshayutin update the quickstart doc notice to use quickstart-extras.yml playbook
The default playbook for quickstart is now quickstart-extras.yml and
the undercloud is installed in the quickstart-extras.yml playbook.
The conditional to print the doc blurb at the end of a qs
deployment needs to be quickstart-extras.yml

Change-Id: I03096493fb87db9efed0a810357566203a0e12a5
Failed to load latest commit information.
ci-scripts Merge "Replace "ara generate" by "ara generate html"" Feb 17, 2017
config Add config for centosci/ocata-cloudsig-stable Feb 22, 2017
doc/source Add new feature to consume external images Jan 18, 2017
library Fix H102 Apache 2.0 license header not found Jul 29, 2016
playbooks Use overcloud-deploy tag on overcloud-deploy role Feb 20, 2017
releasenotes Add release notes for Ocata 2.0.0 Feb 3, 2017
roles Merge "Replace ansible_user with ssh_user" Feb 24, 2017
test_plugins Fix H102 Apache 2.0 license header not found Jul 29, 2016
.gitignore Do not track Vim swap/backup files Jan 16, 2017
.gitreview Fix .gitreview for move to openstack git Apr 1, 2016
LICENSE Initial commit Nov 19, 2015
README.rst Merge "provide instructions on how to only use quickstart as instack-… Feb 16, 2017
ansible-role-requirements.yml Switch to using standalone role for image building Apr 13, 2016
ansible.cfg Add the ARA Ansible callback generate a static playbook reports Jan 16, 2017 Use export in ansible_ssh_env file Oct 20, 2016 Fix unused variable in script Jan 3, 2017
other-requirements.txt Add libffi devel package for the upstream gates Nov 14, 2016
quickstart-extras-requirements.txt Start using tripleo-quickstart-extras Nov 22, 2016
quickstart-role-requirements.txt Removing locking hash on undercloud post role Sep 14, 2016 update the quickstart doc notice to use quickstart-extras.yml playbook Feb 24, 2017
requirements.txt Revert Ansible version back to Jan 17, 2017
setup.cfg Update author and author-email Dec 1, 2016 Add installation and setup machinery Nov 30, 2015
test-requirements.txt Add ReNo support for managing release notes in TripleO-Quickstart Jan 16, 2017
tox.ini Fix and improve flake8 test. Feb 9, 2017


Team and repository tags


One of the barriers to entry for trying out TripleO and its derivatives has been the relative difficulty in getting an environment up quickly.

This set of ansible roles is meant to help.

Quickstart's default deployment method uses a physical machine, which is referred to as $VIRTHOST throughout this documentation. On this physical machine Quickstart sets up multiple virtual machines (VMs) and virtual networks using libvirt.

One of the VMs is set up as undercloud, an all-in-one OpenStack cloud used by system administrators to deploy the overcloud, the end-user facing OpenStack installation, usually consisting of multiple VMs.

You will need a $VIRTHOST with at least 16 GB of RAM, preferably 32 GB, and you must be able to ssh to the virthost machine as root without a password from the machine running ansible. Currently the virthost machine must be running a recent Red Hat-based Linux distribution (CentOS 7, RHEL 7, Fedora 22 - only CentOS 7 is currently tested), but we hope to add support for non-Red Hat distributions too.

A quick way to test that your virthost machine is ready to rock is:

ssh root@$VIRTHOST uname -a

The defaults are meant to "just work", so it is as easy as downloading and running the script.

Getting the script

You can download the script with wget:


Alternatively, you can clone this repository and run the script from there.


You need some software available on your local system before you can run You can install the necessary dependencies by running:

bash --install-deps

Deploying with instructions

Deploy your virtual environment by running:


Where $VIRTHOST is the name of the host on which you want to install your virtual triple0 environment. The script will install this repository along with ansible in a virtual environment on your Ansible host and run the quickstart playbook. Note, the quickstart playbook will delete the stack user on $VIRTHOST and recreate it.

This script will output instructions at the end to access the deployed undercloud. If a release name is not given, newton is used.

Deploying without instructions

bash --tags all $VIRTHOST

You may choose to execute an end to end deployment without displaying the instructions and scripts provided by default. Using the --tags all flag will instruct quickstart to provision the environment and deploy both the undercloud and overcloud. Additionally a validation test will be executed to ensure the overcloud is functional.

Deploying on localhost

bash localhost

Please note the following when using quickstart to deploy tripleo directly on localhost. The deployment should pass, however you may not be able to ssh to the overcloud nodes while using the default ssh config file. The ssh config file that is generated by quickstart e.g. ~/.quickstart/ssh.config.ansible will try to proxy through the localhost to ssh to the localhost and will cause an error if ssh is not setup to support it.

Enable Developer mode

If you are working on TripleO upstream development, and need to reproduce what runs in tripleo-ci, you will want to use developer mode.

This will fetch the images produced by tripleo-ci instead of the ones produced by RDO. The incantation for a job using the quickstart defaults other than developer mode would be:


The full set of developer mode instructions are available in :ref:`devmode`

Working With Quickstart Extras

TripleO Quickstart is more than just a tool for quickly deploying a single machine TripleO instance; it is an easily extensible framework for deploying OpenStack.

For a how-to please see :ref:`working-with-extras`

Setting up libvirt guests only

At times it is useful to only setup or provision libvirt guests without installing any TripleO code or rpms. The tripleo-quickstart git repository is designed to provision libvirt guest environments. Some may be familiar with an older TripleO tool called instack-virt-setup, these steps would replace that function.

To deploy the undercloud node uninstalled and empty or blank overcloud nodes do the following.:

bash --tags all --playbook quickstart.yml $VIRTHOST

To only deploy one node, the undercloud node do the following.:

bash --tags all --playbook quickstart.yml -e overcloud_nodes="" $VIRTHOST


The full documentation is in the doc/source directory, it can be built using:

tox -e docs

An up-to-date HTML version is available on


Copyright 2015-2016 Red Hat, Inc.

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

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.