-
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:
# 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? 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 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 assumes Ethernet interfaces. For other types of interfaces or different setups, adapt the configuration to match your environment.
For the changes to take effect, restart the networking service:
sudo systemctl restart networkingThe system is now ready for deployment.
⚠️ If thenetworkingservice fails to restart, which can happen, reboot the system directly.
The simplest option. The tool auto-detects your network interface, generates a configuration file, and immediately starts the deployment — all in one command.
deploystack deploy --allinoneThat's it. Wait a few minutes and you will have a fully functional OpenStack installation.
⚠️ 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.
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:
deploystack 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:
deploystack deploy --config-file openstack-config-xxxx.yamlFor users who want full control over every configuration parameter.
Step 1 — Generate an empty configuration template:
deploystack 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:
deploystack 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 | YYYY-MM-DDTHH:MM:SSZ |
| 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).
After a successful deployment, DeployStack automatically moves all existing ifupdown network configuration files to /root/net-backup/. This is done to avoid conflicts between the original interface configurations and the OVS bridges created by Neutron during deployment.
If you ever need to restore the original network configuration, you can find all backed-up files there:
ls /root/net-backup/| 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.