-
Notifications
You must be signed in to change notification settings - Fork 1
OpenStack Deployment Guide
This guide walks you through deploying OpenStack using Debian OpenStack Deployer. 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:
# Remove Netplan
sudo systemctl disable systemd-networkd
sudo apt remove --purge netplan.io -y
# Install ifupdown
sudo apt install ifupdown -yNow that ifupdown has been successfully installed, enable it at system startup:
sudo systemctl enable networkingAt this point ifupdown is ready to configure the main network
Why? I discovered that Netplan was a bit restrictive for proper networking on Neutron, so all deployment now relies on ifupdown when configuring OVS bridges directly via ifupdown. Netplan may conflict with the network configuration performed during deployment.
At this point you can create a new file in /etc/network/interfaces.d/network to configure the main interface with this basic configuration:
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
⚠️ Please note that this configuration file assumes an Ethernet interface, in case of other types of interfaces and configurations, adapt the configuration for your environment.
Now for the changes to take effect, restart the networking service.
sudo systemctl restart networkingThe system is now ready for deployment for OpenStack
The simplest option. The tool auto-detects your network interface, generates a configuration file, and immediately starts the deployment — all in one command.
openstack_installer deploy --allinone
⚠️ Note: Automatic configuration file generation is not 100% accurate. If your system has multiple network interfaces, it is recommended to use--generate-onlyfirst to review the generated configuration before deploying — in particular, verify thatneutron.ovs.PUBLIC_BRIDGE_INTERFACE(orneutron.ovn.OVN_PUBLIC_BRIDGE_INTERFACE) points to the correct interface. Assigning the wrong interface to the external bridge will result in instances having no internet access.
That's it. Wait a few minutes and you will have a fully functional OpenStack installation.
If you want to inspect or adjust the auto-generated configuration before deploying, use --generate-only. The tool will generate the configuration file but will not start the deployment.
Step 1 — Generate the configuration:
openstack_installer deploy --allinone --generate-onlyThis creates a pre-compiled file named openstack-config-xxxx.yaml in the current directory, with all network settings already filled in based on your system.
Step 2 — Review and edit the file if needed, then start the deployment:
openstack_installer deploy --config-file openstack-config-xxxx.yamlFor users who want full control over every configuration parameter.
Step 1 — Generate an empty configuration template:
openstack_installer generate-config ~/openstack-config.yamlStep 2 — Fill in the configuration file manually. Refer to the Configuration File Reference for a full description of every parameter.
Step 3 — Start the deployment:
openstack_installer deploy --config-file ~/openstack-config.yamlWhen the deployment finishes successfully, the tool will print a summary like this:
+ *** 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 you configured in your config file to log in.
Note: Make sure your firewall allows HTTP/HTTPS access to this host.
Credentials Scripts: You can find them in /root/admin-openrc.sh and /root/demo-openrc.sh-
Horizon Dashboard: open
http://<HOST_IP>/dashboardin your browser and log in with theadmincredentials you set in the configuration file.

-
Keystone API: available at
http://<HOST_IP>:5000/for CLI or SDK access.
Two OpenRC scripts are automatically generated and placed in /root/:
| File | User |
|---|---|
/root/admin-openrc.sh |
admin user — full access |
/root/demo-openrc.sh |
demo user — limited access |
Source one of them to authenticate your OpenStack CLI session:
source /root/admin-openrc.shNow you can try to generate an authentication token:
openstack token issue
+------------+----------------------------------+
| Field | Value |
+------------+----------------------------------+
| expires | 2026-04-30T15:00:00Z |
| id | gAAAAABk... |
| project_id | 1234567890abcdef |
| user_id | abcdef1234567890 |
+------------+----------------------------------+Note: Make sure your firewall allows HTTP access to the host on port
80(Horizon) and port5000(Keystone).
| Path | Command | Use case |
|---|---|---|
| Fully Automatic | deploy --allinone |
Just want OpenStack running as fast as possible |
| Semi-Automatic |
deploy --allinone --generate-only → deploy --config-file
|
Want to review or tweak settings before deploying |
| Fully Manual |
generate-config → edit → deploy --config-file
|
Need full control over every parameter |
For issues or contributions, visit the project repository.