In this project ill be completing 3 tasks:
- Deploying a Basic OpenStack Setup (All-in-One Node)✅
- Setting up a Multi-node OpenStack Deployment (ENV)
- Deploying a highly available Openstack ENV and using Automation with Heat Orchestartion
flowchart TD;
%% Beginner Project: Single-Node OpenStack Setup
subgraph Beginner_Project
direction TB
A1[Prepare CentOS] --> B1[Install Packstack]
A1 --> C1[Run Packstack with All-in-One]
B1 --> D1[Configure Neutron Networking]
C1 --> E1[Set Up External Network]
D1 --> F1[Create Internal Network and Subnet]
E1 --> G1[Upload Image to Glance]
F1 --> H1[Create VM Flavor]
G1 --> I1[Launch Instance]
H1 --> J1[Associate Floating IP]
end
%% Intermediate Project: Multi-Node OpenStack Setup
subgraph Intermediate_Project
direction TB
A2[Prepare Multiple CentOS Nodes] --> B2[Install OpenStack on Controller Node]
A2 --> C2[Install OpenStack on Compute Nodes]
B2 --> D2[Configure Neutron with VLAN/VXLAN]
C2 --> E2[Run Packstack with Multi-Node Answer File]
D2 --> F2[Create Networks, Flavors, and Images]
E2 --> G2[Launch Instances on Compute Nodes]
F2 --> H2[Associate Floating IPs]
end
%% Advanced Project: High Availability & Orchestration
subgraph Advanced_Project
direction TB
A3[Prepare Controller and Compute Nodes for HA] --> B3[Configure HAProxy for Load Balancing]
A3 --> C3[Set Up Galera Cluster for DB HA]
B3 --> D3[Set Up RabbitMQ Cluster for Message Queueing HA]
C3 --> E3[Configure OpenStack Services in HA]
D3 --> F3[Deploy Heat for Orchestration]
E3 --> G3[Create Heat Template for Auto-Scaling]
F3 --> H3[Set Up Centralized Logging & Monitoring]
end
%% Connecting Projects Together
Beginner_Project --> Intermediate_Project
Intermediate_Project --> Advanced_Project
[] PREQ:
- CentOS Stream 9 OS
- At least 4 GB RAM, 20 GB Disk Space, 2 CPU cores
Step 1: . Update system packages::
sudo yum update -y
Step 2: .
Temporarily Disable SELinux and Firewalld (NOTE: DO NOT DO THIS IN PRODUCTION!!)

Step 3: . When configuring the network settings, make sure the IP is static
Step 1: .
Install the OpenStack Repo zed::

Step 3: . Now run the Pack installer. This will iniate an automated deployment of all core OpenStack Components. (Command is below):
sudo packstack --allinone
This will take 15-30minutes to complete..
Still going, Ill waiting for it to finish building::
Build completed with some errors, but lets test to see if the UI is still accessible with out any issues:
CHECKING..:
UI Looks to be Inaccessible::
I'll TroubleShoot the Issue.
RESULT::
UI is now accessible..
Lets quickly walk through what I did in the Backend to fix this:
- I stopped and disabled the
NetworkMangerservice - I ran the
less /var/tmp/packstack/20241002-194116-lj_a_ufq/manifests/10.0.0.151_controller.pp.logcommand to get more context and information on what exactly was causing the issue - 2 things...that I read from the errors that could be potential fixes: First, Openstack-glance was failing to install. Second, python3-pyxattr was struggling to be installed during the automation sequence
- Action to fix: First, I ran the command
dnf config-manager --set-enabled crbto enable the crb repo. Next, I ran the commanddnf clean all && dnf makecacheto rebuild DNF Cache and update repos. Next, I did a manual installation of pyxattr by using the commanddnf install -y python3-pyxattr. And then I ran the commanddnf install -y openstack-glanceto install the openstack-glance package now that pyxattr was available and successfully installed. Finally I reiniated the build by running thepackstack --answer-file /root/packstack-answers-20241002-194118.txtcommand...and tested for success after the build was finished
Now there's Issues Authenticating:
Could Stem from this error:
Will TroubleShoot
SUCCESS!:
Lets quickly walk through how I Fixed this:
- I stopped the Apache service with the
systemctl stop httpdcommand - I resetted the passwd with the command:
keystone-manage bootstrap --bootstrap-password 'ENTER_NEW_PASSWD_HERE' \ --bootstrap-admin-url http://10.0.0.151:5000/v3/ \ --bootstrap-internal-url http://10.0.0.151:5000/v3/ \ --bootstrap-public-url http://10.0.0.151:5000/v3/ \ --bootstrap-region-id RegionOne - I updated the ~/keystonerc_admin dir with the new passwd then sourced the dir
- I then started the apache service with
systemctl start httpd - Then I retested the login with the new passwd
I expect to encounter More issues as I go along but thats part of the work so I expect it and have full confidence ill always figure it out
======== NOW ON TO THE NEXT TASK IN THIS PROJECT =========
Since I already have the controller node built ill go ahead and configure the other two nodes within the packstack answers.txt file
now ill run the packstack --answer-file=packstack-answers-20241002-194118.txt command to deploy the multi-node env
NOTE: Make sure you have a passwordless SSH connection established to each node before deploying the env
DEPLOYING MULTI-NODE ENV:
WILL TAKE A WHILE (15 - 30 mins)











