Virtual Machines
Create and manage Trusted Execution Environment virtual machines with AMD SEV-SNP security.
Create VM
Interactive VM creation:
teenode vm create proj_xyz789Create with specifications:
teenode vm create proj_xyz789 \
--cpu-cores 4 \
--ram-mb 4096 \
--disk-gb 100 \
--os-image ubuntu-22.04 \
--hostname my-vmVM 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_xyz789VM States
CREATING- VM is being provisionedRUNNING- VM is running and readySTOPPED- VM is stoppedPAUSED- VM is pausedDELETING- VM is being deletedERROR- VM encountered an error
Control VM
Start a VM:
teenode vm start proj_xyz789Stop a VM:
teenode vm stop proj_xyz789Restart a VM:
teenode vm restart proj_xyz789Delete a VM:
teenode vm delete proj_xyz789SSH Access
Get VM connection information:
teenode vm console proj_xyz789This 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_xyz789The 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: ● RUNNINGJSON 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"
}