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.rcfrom Voyager's Quick Start section. It contains the application credentials needed for the OpenStack CLI. -

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.