Skip to content

OpenStack — Commands & Recipes

Authentication

# Source credentials
source openrc.sh
# or use clouds.yaml
export OS_CLOUD=mycloud

# Verify authentication
openstack token issue

Compute (Nova)

# List instances
openstack server list --long

# Create instance
openstack server create myvm \
  --image ubuntu-24.04 \
  --flavor m1.large \
  --network private-net \
  --key-name mykey \
  --security-group default \
  --availability-zone az1

# Live migrate
openstack server migrate --live target-host myvm

# Resize
openstack server resize myvm m1.xlarge
openstack server resize confirm myvm

# Console access
openstack console url show myvm
openstack console log show myvm --lines 50

Networking (Neutron)

# Create network + subnet
openstack network create private-net
openstack subnet create private-sub \
  --network private-net \
  --subnet-range 10.0.0.0/24 \
  --gateway 10.0.0.1 \
  --dns-nameserver 8.8.8.8

# Create router + connect
openstack router create main-router
openstack router set main-router --external-gateway public-net
openstack router add subnet main-router private-sub

# Floating IP
openstack floating ip create public-net
openstack server add floating ip myvm 203.0.113.10

# Security groups
openstack security group rule create default \
  --protocol tcp --dst-port 22 --remote-ip 0.0.0.0/0

Storage (Cinder)

# Create and attach volume
openstack volume create --size 100 --type ssd data-vol
openstack server add volume myvm data-vol

# Snapshot
openstack volume snapshot create --volume data-vol snap-01

# Backup
openstack volume backup create --name backup-01 data-vol

Images (Glance)

# Upload image
openstack image create ubuntu-24.04 \
  --file ubuntu-24.04-server-cloudimg-amd64.img \
  --disk-format qcow2 --container-format bare \
  --public

# List images
openstack image list --long

Orchestration (Heat)

# stack.yaml
heat_template_version: 2021-04-16
parameters:
  image:
    type: string
    default: ubuntu-24.04
resources:
  server:
    type: OS::Nova::Server
    properties:
      image: { get_param: image }
      flavor: m1.large
      networks:
        - network: private-net
openstack stack create mystack -t stack.yaml
openstack stack list
openstack stack delete mystack

Troubleshooting

# Check service status
openstack compute service list
openstack network agent list
openstack volume service list

# Hypervisor stats
openstack hypervisor stats show
openstack hypervisor list --long

# Quota check
openstack quota show --project myproject

Sources