Skip to content

SumonPaul18/OpenStack

Repository files navigation

🌩️ OpenStack Deployment & Management Guide

Build Your Own Private or Public Cloud with Confidence

🎯 Audience: Cloud Engineers β€’ DevOps Professionals β€’ System Administrators β€’ IT Students β€’ OpenStack Enthusiasts
πŸ“… Last Updated: April 2025
πŸ§‘β€πŸ’» Author: Sumon Paul β€’ Cloud Engineer YouTube Channel
πŸ”– Tags: #OpenStack #PrivateCloud #KollaAnsible #PackStack #CloudComputing #IaaS

OpenStack Banner


πŸ“š Table of Contents


🌟 About This Repository

This repository provides hands-on, production-ready guides for deploying OpenStack using three widely used methods:

  1. Kolla-Ansible – Containerized (Docker + Ansible), ideal for production.
  2. PackStack – Rapid All-in-One setup via Puppet (RDO), perfect for labs.
  3. Manual Installation – Step-by-step Ubuntu-based guide for deep learning.

Whether you're building a private cloud, running a home lab, or preparing for certification, this repo gives you everything from theory to terminal commands β€” with real-world fixes and troubleshooting.


☁️ What is OpenStack?

Why OpenStack?

OpenStack is an open-source Infrastructure-as-a-Service (IaaS) platform that lets you build and manage private and public clouds using standard hardware. Used by NASA, CERN, AT&T, and thousands of enterprises.

History & Evolution

  • Launched in 2010 by NASA and Rackspace.
  • Now governed by the Open Infrastructure Foundation (OpenInfra).
  • Enables vendor-neutral, scalable, and secure cloud infrastructure.

Core Components

Category Service Purpose
Compute Nova VM lifecycle
Networking Neutron SDN
Storage Cinder (block), Swift (object) Persistent storage
Identity Keystone Auth & authz
Image Glance VM image registry
Dashboard Horizon Web UI
Orchestration Heat IaC

Pros & Cons

βœ… Pros ❌ Cons
Open-source & free Steep learning curve
Highly modular & scalable Complex networking
No vendor lock-in Requires skilled team
Supports hybrid/multi-cloud Resource-intensive

OpenStack vs Alternatives

Platform Best For
OpenStack On-prem private/public cloud with full control
AWS / Azure / GCP Public cloud with zero infra management
Proxmox VE Small-scale virtualization
VMware vCloud Existing VMware environments

πŸ’‘ Use OpenStack when: You need data sovereignty, custom billing, or to offer white-label cloud services.


βš™οΈ Prerequisites for Installation

Hardware (Minimum for All-in-One)

  • CPU: 2+ cores (4+ recommended)
  • RAM: 8 GB (16+ GB for production)
  • Disk: 40+ GB SSD (100+ GB preferred)
  • Network: 2–3 NICs (Management, Data, External)

Software Requirements

  • OS: Ubuntu 22.04/24.04, Rocky Linux 8/9, AlmaLinux 8/9
  • Virtualization: Enabled in BIOS (vmx/svm)
  • Root or sudo access
  • Static IP configuration
  • SELinux disabled (for RHEL-based)
  • Firewall disabled (or required ports opened)

πŸ”§ Tip: Use VirtualBox or Proxmox for labs. For production, use bare-metal servers.


πŸš€ OpenStack Deployment Methods Overview

OpenStack can be deployed in many ways, depending on your use case, scale, and expertise. Below is a comprehensive list of official and community-supported deployment tools.

Official & Community-Supported Tools

Tool Type Best For Official Docs
Kolla-Ansible Containerized (Docker + Ansible) Production, HA, scalable docs.openstack.org/kolla-ansible
PackStack Puppet-based (RDO) Quick AIO labs, CentOS/AlmaLinux rdoproject.org/install/packstack
DevStack Shell script (development) Developers, testing docs.openstack.org/devstack
OpenStack Charms (Juju) Model-driven (Ubuntu) Canonical/Ubuntu environments ubuntu.com/openstack/install
TripleO (OpenStack on OpenStack) Production-grade (Red Hat) Large-scale, enterprise docs.openstack.org/tripleo
Helm Charts (Airship) Kubernetes-native Cloud-native deployments airshipit.org
Manual Installation Step-by-step Learning, customization docs.openstack.org/install-guide

πŸ“Œ Note: While DevStack and TripleO are powerful, they are not included in this repo due to scope.

Methods Covered in This Repository

βœ… 1. Kolla-Ansible (Containerized, Production-Ready)
πŸ“ Path: /deployment-tools/kolla-ansible/
πŸ“˜ Guides:

βœ… 2. PackStack (RDO-based, All-in-One)
πŸ“ Path: /deployment-tools/packstack/
πŸ“˜ Guides:

βœ… 3. Manual Installation (Step-by-Step, Educational)
πŸ“ Path: /manually/
πŸ“˜ Guides:


πŸ”§ Post-Installation: Verification & Essential Operations

How to Verify Your Installation

After installation, always verify that all services are running:

# Source admin credentials
source ~/keystonerc_admin        # PackStack
# OR
source /etc/kolla/admin-openrc.sh  # Kolla-Ansible

# Check core services
openstack service list

# Check compute & network agents
openstack compute service list
openstack network agent list

# Verify hypervisors
openstack hypervisor list

# Test token issuance
openstack token issue

βœ… Success: All services show enabled and up.


Accessing OpenStack

  • Horizon Dashboard: http://<your-ip>/dashboard
  • Default Login:
    • Username: admin
    • Password: From ~/keystonerc_admin or /etc/kolla/passwords.yml
  • Get Password:
    grep keystone_admin_password /etc/kolla/passwords.yml

πŸ”’ Security Tip: Change default passwords and disable demo projects in production.


Managing via CLI – Essential Commands

Install OpenStack CLI (if not installed):

pip install python-openstackclient

πŸ”Ή Identity & Projects

openstack project list
openstack user list
openstack role assignment list --names

πŸ”Ή Compute

openstack server list
openstack server create --image <img> --flavor <flavor> --network <net> test-vm
openstack server delete <server-id>
openstack flavor list
openstack hypervisor stats show

πŸ”Ή Networking

openstack network list
openstack subnet list
openstack router list
openstack floating ip list

πŸ”Ή Images & Volumes

openstack image list
openstack volume list

πŸ”Ή System Health

openstack catalog list
openstack endpoint list
nova-status upgrade check

πŸ’‘ Pro Tip: Use --format json or --format yaml for scripting.


Critical Tips for Configuration, Operation & Maintenance

πŸ”Έ 1. Always Use Version-Pinned Installations

  • Use stable branches (e.g., stable/2025.1) for Kolla-Ansible.
  • Avoid master in production.

πŸ”Έ 2. Backup Critical Files

  • Kolla-Ansible: Backup /etc/kolla/, passwords.yml, and inventory.
  • PackStack: Backup ~/keystonerc_admin and /root/answers.txt.

πŸ”Έ 3. Enable Instance Auto-Start on Reboot

Edit /etc/nova/nova.conf:

[DEFAULT]
resume_guests_state_on_host_boot = true

Then restart:

systemctl restart openstack-nova-compute

πŸ”Έ 4. Fix Common Runtime Issues

  • Kolla-Ansible: Install missing modules in Ansible runtime:
    /opt/ansible-runtime/bin/pip install docker dbus-python
  • PackStack: If Horizon fails, restart:
    systemctl restart httpd memcached

πŸ”Έ 5. Monitor Logs Proactively

# Compute issues
tail -f /var/log/nova/nova-compute.log

# Networking issues
tail -f /var/log/neutron/server.log

# Authentication issues
tail -f /var/log/keystone/keystone.log

πŸ”Έ 6. Use Screen or tmux for Long-Running Tasks

dnf install screen -y
screen -S openstack-install
# (Detach with Ctrl+A, D; Reattach with `screen -r`)

πŸ”Έ 7. Clean Up Unused Resources

# Delete orphaned volumes
openstack volume list --status error -c ID -f value | xargs openstack volume delete

# Remove unused images
openstack image list --status active

πŸ“„ License

  • This repository is licensed under the MIT License.
  • OpenStack itself is licensed under Apache 2.0.
  • See LICENSE for details.

πŸ“¬ Feedback & Contributions

Found a typo? Have an improvement?
πŸ‘‰ Open an Issue or Submit a Pull Request!

πŸ”— Connect:


✨ Happy Cloud Building!
"The future is open, scalable, and in your control."