Virtual Machines

Create and manage Trusted Execution Environment virtual machines with AMD SEV-SNP security.

Create VM

Interactive VM creation:

teenode vm create proj_xyz789

Create with specifications:

teenode vm create proj_xyz789 \
  --cpu-cores 4 \
  --ram-mb 4096 \
  --disk-gb 100 \
  --os-image ubuntu-22.04 \
  --hostname my-vm

VM Specifications

  • CPU Cores: 1-32 cores
  • RAM: 512 MB to 128 GB
  • Disk: 10 GB to 2000 GB
  • OS Images: Ubuntu 22.04 LTS, Debian 12, Alpine 3.18

Get VM Status

teenode vm info proj_xyz789

VM States

  • CREATING - VM is being provisioned
  • RUNNING - VM is running and ready
  • STOPPED - VM is stopped
  • PAUSED - VM is paused
  • DELETING - VM is being deleted
  • ERROR - VM encountered an error

Control VM

Start a VM:

teenode vm start proj_xyz789

Stop a VM:

teenode vm stop proj_xyz789

Restart a VM:

teenode vm restart proj_xyz789

Delete a VM:

teenode vm delete proj_xyz789

SSH Access

Get VM connection information:

teenode vm console proj_xyz789

This will display:

VM Console Access
──────────────────────────────

Connect to your VM via SSH:

  ssh [email protected]

Or if you configured a different user:

  ssh [email protected]

Attestation

Get AMD SEV-SNP attestation report:

teenode vm attest proj_xyz789
The attestation report allows you to cryptographically verify your VM’s security properties and prove it’s running on genuine AMD SEV-SNP hardware.

Examples

Create and Launch a VM

# Create VM interactively
$ teenode vm create proj_xyz789
CPU cores (1-32): 4
RAM in MB (512-131072): 4096
Disk size in GB (10-2000): 100
Select OS image:
 Ubuntu 22.04 LTS
  Debian 12
  Alpine 3.18
Hostname (optional): my-secure-vm

 VM created successfully

# Check status
$ teenode vm info proj_xyz789
VM Details
──────────────────────────────
VM ID:      vm_abc123
Project ID: proj_xyz789
State: RUNNING
CPU Cores:  4
RAM:        4096 MB
Disk:       100 GB
OS Image:   ubuntu-22.04
Public IP:  203.0.113.42
Private IP: 10.0.1.5

# Connect via SSH
$ ssh [email protected]
root@my-secure-vm:~# 

Stop and Start VM

# Stop VM with confirmation
$ teenode vm stop proj_xyz789
? Are you sure you want to stop the VM? (y/N) y
 VM stopped

# Check status
$ teenode vm info proj_xyz789
State: STOPPED

# Start again
$ teenode vm start proj_xyz789
 VM started
State: RUNNING

JSON Output for Automation

# Get VM info as JSON
$ teenode vm info proj_xyz789 --json | jq '.vm'
{
  "id": "vm_abc123",
  "projectId": "proj_xyz789",
  "state": "RUNNING",
  "cpuCores": 4,
  "ramMB": 4096,
  "diskGB": 100,
  "osImage": "ubuntu-22.04",
  "publicIp": "203.0.113.42",
  "privateIp": "10.0.1.5"
}
    Virtual Machines - Teenode CLI Documentation