Skip to content

OpenStack CLI

This guide covers the same first VM workflow as the Skyline guide, but uses the OpenStack CLI from start to finish.

Prerequisites

Before you begin, make sure you have completed the onboarding flow and your account is fully activated in Voyager.

Set Up the OpenStack CLI

  • Download open.rc from Voyager's Quick Start section. It contains the application credentials needed for the OpenStack CLI.

  • voyager_app_cred

Install the OpenStack CLI:

sudo apt update
sudo apt install -y python3-openstackclient

Expected output:

...
Setting up python3-openstackclient ...

Load your application credentials:

source ~/Downloads/open.rc

Expected output:

# No output is expected if the file loads successfully.

Step 1: Verify CLI Access

Check that your application credentials are working before creating resources.

openstack token issue

Expected output:

+------------+----------------------------------+
| Field      | Value                            |
+------------+----------------------------------+
| expires    | 2026-04-29T12:34:56+0000         |
| project_id | <your-project-id>                |
| user_id    | <application-credential-user-id> |
+------------+----------------------------------+

Step 2: Create a VM

Create a VM with the same defaults used in the Skyline guide.

openstack server create \
  --flavor c1.small \
  --image ubuntu-24.04 \
  --boot-from-volume 10 \
  --network local-net \
  --security-group default \
  --key-name bootstrap \
  --wait \
  test-vm

Expected output:

+-----------------------------+----------------+
| Field                       | Value          |
+-----------------------------+----------------+
| OS-EXT-STS:vm_state         | active         |
| addresses                   | local-net=...  |
| flavor                      | c1.small       |
| image                       | ubuntu-24.04   |
| key_name                    | bootstrap      |
| name                        | test-vm        |
| status                      | ACTIVE         |
+-----------------------------+----------------+

Step 3: Allow SSH Access

Open port 22 on the default security group so you can connect later.

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

Expected output:

+-------------------+--------------------------------------+
| Field             | Value                                |
+-------------------+--------------------------------------+
| direction         | ingress                              |
| protocol          | tcp                                  |
| remote_ip_prefix  | 0.0.0.0/0                            |
| security_group_id | <default-security-group-id>          |
+-------------------+--------------------------------------+

Step 4: Assign a Floating IP

Allocate a floating IP from the office network:

openstack floating ip create office

Expected output:

+---------------------+---------------+
| Field               | Value         |
+---------------------+---------------+
| floating_ip_address | 192.168.3.229 |
| status              | DOWN          |
+---------------------+---------------+

Find the port attached to your VM:

openstack port list --server test-vm

Expected output:

+--------------------------------------+-------------------+---------------------------------------------------+--------+
| ID                                   | MAC Address       | Fixed IP Addresses                                | Status |
+--------------------------------------+-------------------+---------------------------------------------------+--------+
| 3e6ae4f0-7451-40ac-9660-89ec487978c2 | fa:16:3e:7a:fc:8c | ip_address='10.0.0.5', subnet_id='<subnet-id>'    | ACTIVE |
+--------------------------------------+-------------------+---------------------------------------------------+--------+

Attach the floating IP to your VM port:

openstack floating ip set --port <port-id> <floating-ip>

Expected output:

# No output is expected if the association succeeds.

Verify the floating IP is attached:

openstack floating ip list

Expected output:

+---------------------+------------------+--------------------------------------+---------+
| Floating IP Address | Fixed IP Address | Port                                 | Status  |
+---------------------+------------------+--------------------------------------+---------+
| 192.168.3.229       | 10.0.0.5         | 3e6ae4f0-7451-40ac-9660-89ec487978c2 | ACTIVE  |
+---------------------+------------------+--------------------------------------+---------+

Step 5: SSH into Your VM

Download the bootstrap private key from Voyager's Quick Start section and set the correct permissions:

chmod 600 ~/Downloads/bootstrap.pem

Connect to your VM:

ssh -i ~/Downloads/bootstrap.pem ubuntu@<floating-ip>

Tip

The default username for ubuntu-24.04 images is ubuntu.