Skip to main content

Deployment

Updated Sep 15, 2023 ·

Overview

OpenStack can be installed in many ways depending on your goals, from full production deployments to small lab setups. Each method has its pros and cons.

  • Manual installation

    • Detailed and provides full control
    • Time-consuming but teaches inner workings of OpenStack
  • Automated deployments

    • Simplifies deployment
    • Reduce errors and save time
    • Suitable for production environments

Vendor tools provide graphical interfaces, professional support, and advanced automation, which makes them well suited for production deployments.

Manual Installation

Manual installation requires careful planning and multiple steps across nodes.

  1. You need to plan for the following:

    • Number of control, compute, and storage nodes
    • High availability setup
    • Network and storage configuration
  2. After planning, the next steps are:

    • Configure physical networking
    • Install the OS on each node
  3. Deploy the infrastructure components:

    • Network and protocol software, web servers
    • SQL database with clustering if needed
    • Message queues and caching services
    • Additional components like Etcd for newer releases
  4. Once the infrastructure is ready, OpenStack services are installed:

    • Keystone (identity service) first
    • Then image, compute, network, and block storage services
    • Horizon dashboard for easier management
  5. Final configuration and validation is performed:

    • Configure service .conf / .ini files
    • Set database, message queue, and authentication details
    • Populate service databases and start services
    • Verify services and basic functionality

Automated Deployment Tools

Automated tools use scripts, containers, or orchestration to simplify OpenStack installation.

Kolla

Kolla packages OpenStack services in Docker containers and provides scripts for deployment:

  • Kolla-Ansible

    • Services runs on Docker runtime, installed on Linux
    • Uses Ansible playbooks for service provisioning
    • Includes features like HAProxy to loadbalance API traffic
    • Uses Galera for SQL database high availability
  • Kolla Kubernetes

    • Services runs containers in Kubernetes
    • Uses Ansible to configure services
    • Uses Helm for orchestration

You need basic knowledge of Docker and Ansible for operations, but initial deployment is straightforward.

OpenStack Ansible

OpenStack Ansible installs many services in Linux containers (LXC) or systemd units:

  • Uses Ansible roles for installing optional services
  • Comes with reasonable default configurations
  • Provides extensive operations and troubleshooting guides

Workflow:

  1. Prepare deployment host with Ansible:

    • Install software
    • Clone the OSA repo
  2. Configure target nodes, network, storage, and SSH:

    • Install software
    • Configure SSH
    • Configure network and storage settings
  3. Edit OpenStack Ansible configuration files:

    • Add or remove OpenStack services
    • Configure credentials
  4. Run scripts to deploy services:

    • setup_hosts.yml
    • setup_infrastructure.yml
    • setup_openstack.yml
  5. Verify the OpenStack deployment:

    • List LXC containers
    • Run CLI commands inside the utility containers
    • Login to Horizon

OpenStack-on-OpenStack (OOO)

OpenStack-on-OpenStack uses a small “undercloud” OpenStack to provision the main OpenStack (“overcloud”) nodes:

  • Undercloud runs bare metal service (Ironic)
  • Overcloud nodes are deployed via orchestration templates
  • Adding or upgrading nodes is simplified using Ironic and orchestration

This approach is production-ready and simplifies scaling and upgrades.

Development and POC Deployments

For learning or proof-of-concept deployments, the following lightweight tools are available:

  • DevStack

    • Installs OpenStack quickly from source
    • Supports single-node or multi-node setups
    • Ideal for experimentation
  • Packstack

    • Red Hat community tool
    • Easy installation on RHEL, CentOS, Fedora
    • Supports adding compute nodes to single-node setups

These tools allow you to explore OpenStack features without heavy infrastructure.