Skip to content

OpenStack Deployment Guide

Sorecchione07435 edited this page May 20, 2026 · 14 revisions

DeployStack OpenStack Deployment Guide

This guide walks you through deploying OpenStack using DeployStack. There are three available paths depending on how much control you want over the configuration.


Prerequisites

1. Uninstall Netplan and install ifupdown

Before starting the deployment, make sure your system uses ifupdown for network interface management instead of Netplan.

Note:

  • On Debian 12/13, ifupdown is already integrated; skip removal or installation steps.
  • On Ubuntu-based distributions, removing Netplan may be possible on some releases, but it is generally safer to disable it temporarily rather than uninstalling it completely.
# Optional: Remove Netplan (if safe for your distro)
sudo systemctl disable systemd-networkd
sudo apt remove --purge netplan.io -y

# Install ifupdown
sudo apt install ifupdown -y

Enable ifupdown at system startup:

sudo systemctl enable networking

At this point, ifupdown is ready to configure the main network.

Why? Netplan is not suitable for the networking model used by OpenStack Neutron. DeployStack uses ifupdown for OVS bridge configuration, as Netplan may interfere with it.


2. Configuring the interfaces with ifupdown

Create a new file in /etc/network/interfaces.d/network to configure your interface(s) with a basic setup:

auto lo
iface lo inet loopback

auto <interface-name>
iface <interface-name> inet static
    address <your-ip>
    netmask <your-netmask>
    gateway <your-gateway>
    dns-nameservers <dns-servers> # Example: 8.8.8.8, 1.1.1.1

⚠️ Note: This configuration assumes Ethernet interfaces. For other types of interfaces, adapt the configuration to match your environment.

Tip: To have ifupdown read and configure interfaces from the /etc/network/interfaces.d/ directory, include the following line in your main /etc/network/interfaces file:

source /etc/network/interfaces.d/*

This ensures that all configuration files in /etc/network/interfaces.d/ are applied at startup.


3. Restarting ifupdown

Before restarting the networking service, flush the IP addresses from all relevant interfaces:

sudo ip addr flush dev <interface-name>

Restart the networking service to apply changes:

sudo systemctl restart networking

Tip: If the networking service fails to restart, repeat the flush for each interface or reboot the system to ensure all network settings are applied.


Deployment Paths

Path 1 — Fully Automatic (Recommended)

The simplest option. The tool auto-detects your network interface, generates a configuration file, and immediately starts deployment:

deploystack deploy --allinone

⚠️ Note: Automatic configuration file generation may not always be accurate. If your system has multiple network interfaces, it is recommended to use --generate-only first to review the generated configuration. Verify that neutron.ovs.PUBLIC_BRIDGE_INTERFACE or neutron.ovn.OVN_PUBLIC_BRIDGE_INTERFACE points to the correct interface, otherwise instances may lack internet access.


Path 2 — Semi-Automatic (Review Before Deploying)

Step 1 — Generate the configuration:

deploystack deploy --allinone --generate-only

This creates a pre-compiled file openstack-config-xxxx.yaml in the current directory.

Step 2 — Review and edit the file if needed, then deploy:

deploystack deploy --config-file openstack-config-xxxx.yaml

Path 3 — Fully Manual

Step 1 — Generate an empty configuration template:

deploystack generate-config ~/openstack-config.yaml

Step 2 — Edit the configuration file manually. Refer to the Configuration File Reference for all parameters.

Step 3 — Start the deployment:

deploystack deploy --config-file ~/openstack-config.yaml

⚠️ Virtualized environments: If running DeployStack inside VMware, VirtualBox, or KVM, ensure provider_networks uses type: flat. VLAN networks require a switch configured with 802.1Q trunk ports.


Deployment Completion

When deployment finishes successfully, the tool will print a summary:

+ *** OpenStack Deployment Completed Successfully! ***

Access your OpenStack services:
 - Horizon Dashboard: http://<HOST_IP>/dashboard
 - Keystone API:      http://<HOST_IP>:5000/

Tip: Use the ADMIN credentials from your config file to log in.
Note: Ensure your firewall allows HTTP/HTTPS access to this host.
Credentials Scripts: /root/admin-openrc.sh and /root/demo-openrc.sh

Accessing OpenStack

  • Horizon Dashboard: http://<HOST_IP>/dashboard

Note (Debian): On Debian, Horizon is available at http://<IP_ADDRESS>/horizon due to issues with changing the virtual host.

  • Keystone API: http://<HOST_IP>:5000/

Credentials Scripts

Two OpenRC scripts are generated in /root/:

File User
/root/admin-openrc.sh admin — full access
/root/demo-openrc.sh demo — limited access

Source a script to authenticate your CLI session:

source /root/admin-openrc.sh

Generate a token:

openstack token issue

Note: Ensure firewall allows HTTP access on port 80 (Horizon) and 5000 (Keystone).

Network Configuration Backup

DeployStack backs up existing ifupdown network configuration files to /root/net-backup/ to avoid conflicts with OVS bridges:

ls /root/net-backup/

Summary

Path Command Use case
Fully Automatic deploy --allinone Fastest setup
Semi-Automatic deploy --allinone --generate-onlydeploy --config-file Review or tweak settings before deployment
Fully Manual generate-config → edit → deploy --config-file Full control over parameters

For issues or contributions, visit the project repository.