Compute CLI
Nova · OpenStack CLI · python-openstackclient
Manage instances, flavors, key pairs, server groups, and snapshots from the command line.
Servers
openstack server listList all instancesopenstack server show <name|id>Show instance detailsopenstack server createCreate an instanceopenstack server delete <name|id>Delete an instanceopenstack server start <name|id>Start a stopped instanceopenstack server stop <name|id>Stop a running instanceopenstack server reboot <name|id>Reboot an instanceopenstack server resize <name|id> <flavor>Resize to a different flavorFlavors
openstack flavor listList available flavorsopenstack flavor show <name|id>Show flavor details (vCPU, RAM, disk)Key Pairs
openstack keypair listList SSH key pairsopenstack keypair create <name>Generate a new key pairopenstack keypair create --public-key <file> <name>Import an existing public keyopenstack keypair delete <name>Delete a key pairServer Groups
openstack server group listList server groupsopenstack server group create --policy <policy> <name>Create with affinity/anti-affinity policyopenstack server group delete <name|id>Delete a server groupSnapshots
openstack server image create --name <snap> <server>Create a snapshot from a running instanceopenstack image list --privateList your snapshotsopenstack image delete <name|id>Delete a snapshotCommon flags: server create
--image <name|id>Base image (e.g., Ubuntu 22.04, Debian 12)--flavor <name|id>Hardware profile (vCPU, RAM, disk)--network <name|id>Network to attach (use public-network for direct internet)--key-name <name>SSH key pair for login--security-group <name|id>Security group(s) to apply (repeatable)--availability-zone <az>Target availability zone--boot-from-volume <size-gb>Boot from a new volume of the given size--user-data <file>Cloud-init script for first-boot configuration--waitBlock until the server reaches ACTIVE statusCommon flags: server list
--status <status>Filter by status: ACTIVE, SHUTOFF, ERROR, BUILD--name <regex>Filter by server name (supports regex)--flavor <id>Filter by flavor--all-projectsList across all projects (admin only)-f jsonOutput as JSON (useful for scripting)--longShow additional columns (host, power state)Examples
Create an instance on a public network
# Create an instance on a public network openstack server create \ --image "Ubuntu 22.04" \ --flavor r1.medium \ --network public-network \ --key-name my-laptop \ --security-group ssh-and-web \ --wait \ my-web-server # Output: # +-----------------------------+--------------------------------------+ # | Field | Value | # +-----------------------------+--------------------------------------+ # | id | a3f4b8c2-7d91-4e56-b123-9f8e7d6c5b4a | # | name | my-web-server | # | status | ACTIVE | # | flavor | r1.medium (id: 3) | # | image | Ubuntu 22.04 (id: img-abc123) | # | addresses | public-network=203.0.113.42 | # +-----------------------------+--------------------------------------+ # SSH into it ssh [email protected]
Private network + floating IP
# Create an instance on a private network, then add a floating IP openstack server create \ --image "Ubuntu 22.04" \ --flavor r1.small \ --network my-private-net \ --key-name my-laptop \ --wait \ my-private-server # Allocate and attach a floating IP openstack floating ip create public-network # +---------------------+--------------------------------------+ # | Field | Value | # +---------------------+--------------------------------------+ # | floating_ip_address | 203.0.113.88 | # +---------------------+--------------------------------------+ openstack server add floating ip my-private-server 203.0.113.88 # Verify openstack server show my-private-server -c addresses # +----------+---------------------------------------------+ # | Field | Value | # +----------+---------------------------------------------+ # | addresses| my-private-net=10.0.0.5, 203.0.113.88 | # +----------+---------------------------------------------+
Snapshot and restore
# Create a snapshot of a running instance openstack server image create --name "web-server-backup-$(date +%Y%m%d)" my-web-server # +------+--------------------------------------+ # | id | snap-d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e | # +------+--------------------------------------+ # List your snapshots openstack image list --private # +--------------------------------------+---------------------------+--------+ # | ID | Name | Status | # +--------------------------------------+---------------------------+--------+ # | snap-d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d | web-server-backup-20260402| active | # +--------------------------------------+---------------------------+--------+ # Create a new instance from the snapshot openstack server create \ --image "web-server-backup-20260402" \ --flavor r1.medium \ --network public-network \ --key-name my-laptop \ --wait \ my-web-server-v2
Quake AI tips
Regions
Quake AI has three regions: us-east-1, us-east-2, and us-west-1. Your RC file sets the region; to target a different one, download a new RC file or set OS_REGION_NAME.
Default security group
The default security group allows all egress but no ingress. You must add ingress rules (SSH, HTTP, etc.) before you can connect to your instance.
Flavor naming
Quake AI flavors follow the pattern r1.{size} (e.g., r1.small, r1.medium, r1.large). Run 'openstack flavor list' to see current specs and pricing tiers.
Boot from volume
For production workloads, use --boot-from-volume to create instances backed by persistent block storage. Ephemeral instances lose data if the host fails.