☁️
Virtualization & Cloud

Cloud Compute (OpenStack)

Open-source cloud platform for VMs, networking, and storage

🐧 Linux🍎 Mac🪟 Windows
Reviewed: Tested on: Kubernetes 1.29 · Terraform 1.8 · Ubuntu 22.04

What is this?

OpenStack lets you build your own private cloud to create virtual servers on demand.

📥

Step 01

Install OpenStack (DevStack)

(01)DevStack — all-in-one lab install

DevStack is the fastest way to get OpenStack running for learning.

Linux
1# Requirements: Ubuntu 22.04, 16GB+ RAM, 100GB disk
2sudo useradd -s /bin/bash -d /opt/stack -m stack
3echo "stack ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/stack
4
5sudo -u stack git clone https://opendev.org/openstack/devstack /opt/stack/devstack
6sudo -u stack cp /opt/stack/devstack/samples/local.conf /opt/stack/devstack/local.conf
7
8# Edit local.conf — set ADMIN_PASSWORD, DATABASE_PASSWORD, etc.
9cd /opt/stack/devstack && sudo -u stack ./stack.sh

(02)Install OpenStack CLI client

Linux
1pip install python-openstackclient
2openstack --version
3
4# Source credentials after DevStack:
5source /opt/stack/devstack/openrc
⚙️

Step 02

Configure OpenStack

(01)Create network and instance

Linux
1# Source admin credentials
2source /opt/stack/devstack/openrc
3
4# Create network
5openstack network create private-net
6openstack subnet create --network private-net --subnet-range 10.0.0.0/24 private-subnet
7
8# Create router (if needed)
9openstack router create router1
10openstack router add subnet router1 private-subnet
11
12# Upload image
13openstack image create "Ubuntu-22.04" --file jammy-server-cloudimg-amd64.img --disk-format qcow2
14
15# Create flavor and keypair
16openstack flavor create --ram 2048 --disk 10 --vcpus 2 m1.small
17openstack keypair create --public-key ~/.ssh/id_ed25519.pub mykey
18
19# Launch instance
20openstack server create --flavor m1.small --image Ubuntu-22.04 --network private-net --key-name mykey my-instance

(02)Horizon web dashboard

Linux
1# After DevStack install, access Horizon:
2# http://<server-ip>/dashboard
3# Login: admin / ADMIN_PASSWORD from local.conf
4
5openstack server list
6openstack console log show my-instance

Step 03

Verify OpenStack

(01)Check services

Linux
1openstack service list
2openstack endpoint list
3openstack compute service list
4openstack network agent list

Step 04

Manage Cloud Compute

(01)Instance lifecycle

Linux
1openstack server list
2openstack server stop my-instance
3openstack server start my-instance
4openstack server delete my-instance
5
6# Floating IP
7openstack floating ip create public
8openstack server add floating ip my-instance <floating-ip>