-
Notifications
You must be signed in to change notification settings - Fork 1
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.
Before starting the deployment, make sure your system uses ifupdown for network interface management instead of Netplan.
Note:
- On Debian 12/13,
ifupdownis 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 -yEnable ifupdown at system startup:
sudo systemctl enable networkingAt 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
ifupdownfor OVS bridge configuration, as Netplan may interfere with it.
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
ifupdownread and configure interfaces from the/etc/network/interfaces.d/directory, include the following line in your main/etc/network/interfacesfile:source /etc/network/interfaces.d/*This ensures that all configuration files in
/etc/network/interfaces.d/are applied at startup.
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 networkingTip: If the networking service fails to restart, repeat the flush for each interface or reboot the system to ensure all network settings are applied.
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-onlyfirst to review the generated configuration. Verify thatneutron.ovs.PUBLIC_BRIDGE_INTERFACEorneutron.ovn.OVN_PUBLIC_BRIDGE_INTERFACEpoints to the correct interface, otherwise instances may lack internet access.
Step 1 — Generate the configuration:
deploystack deploy --allinone --generate-onlyThis 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.yamlStep 1 — Generate an empty configuration template:
deploystack generate-config ~/openstack-config.yamlStep 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, ensureprovider_networksusestype: flat. VLAN networks require a switch configured with 802.1Q trunk ports.
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-
Horizon Dashboard:
http://<HOST_IP>/dashboard
Note (Debian): On Debian, Horizon is available at
http://<IP_ADDRESS>/horizondue to issues with changing the virtual host.
-
Keystone API:
http://<HOST_IP>:5000/
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.shGenerate a token:
openstack token issueNote: Ensure firewall allows HTTP access on port
80(Horizon) and5000(Keystone).
DeployStack backs up existing ifupdown network configuration files to /root/net-backup/ to avoid conflicts with OVS bridges:
ls /root/net-backup/| Path | Command | Use case |
|---|---|---|
| Fully Automatic | deploy --allinone |
Fastest setup |
| Semi-Automatic |
deploy --allinone --generate-only → deploy --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.