Consoles
Sylve exposes safe VNC connection information and provides a preflighted local serial connection. Neither command returns stored VNC passwords.
Inspect VNC access
Section titled “Inspect VNC access”Inspect VNC configuration without opening a client:
doas sylve vms access vnc --rid 301 --jsonWhen VM 301 was powered off, Loki returned:
{ "rid": 301, "name": "docs-alpine", "enabled": true, "available": false, "domainState": "shut off", "bindAddress": "127.0.0.1", "port": 5901, "endpoint": "127.0.0.1:5901", "resolution": "1024x768", "wait": false, "passwordConfigured": false, "unavailableReason": "vm_not_running"}After the start task completed, the same command reported "available": true, "domainState": "running", and an empty unavailable reason.
The response deliberately reports passwordConfigured rather than returning the password. Replace or clear VNC authentication through vms config vnc.
Reach a loopback VNC endpoint
Section titled “Reach a loopback VNC endpoint”VM 301 binds VNC to the node’s loopback interface. Forward the port over SSH from an administrator workstation:
ssh -L 5901:127.0.0.1:5901 root@your-sylve-nodeWhile that SSH session remains open, connect the local VNC client to:
127.0.0.1:5901Check serial readiness
Section titled “Check serial readiness”JSON mode performs daemon-side preflight without launching a terminal client:
doas sylve vms access serial \ --rid 301 \ --baud 115200 \ --jsonA powered-off VM fails with a nonzero exit status:
{"error":"vm_console_requires_running_vm"}After VM 301 started, preflight returned:
{ "rid": 301, "name": "docs-alpine", "baudRate": "115200", "devicePath": "/dev/nmdm301B", "domainState": "running", "available": true}Preflight checks that:
- Serial is enabled in the VM configuration.
- The domain is in a supported running state.
- The node owns the VM’s replication lease.
/dev/nmdm<RID>Bexists.- Baud is an integer from 50 through 4000000.
Open the serial console
Section titled “Open the serial console”Omit --json to run the local cu client after preflight:
doas sylve vms access serial --rid 301 --baud 115200The bounded connection test on Loki printed:
RID: 301Name: docs-alpineAvailable: trueDomain state: runningDevice: /dev/nmdm301BBaud: 115200ConnectedThe command must run on the Sylve node because the nmdm device is local. When connected through SSH, run sylve vms access serial inside the SSH session.
To exit cu, enter its disconnect sequence at the beginning of a new line:
~.The guest must configure its bootloader and operating system for serial output. A successful host preflight confirms the device path, not that the guest will print a login prompt.
Use the interactive console
Section titled “Use the interactive console”Use positional RIDs inside sylve --console:
vms access vnc 301 --jsonvms access serial 301 --baud 115200 --jsonvms access serial 301 --baud 115200The non-JSON serial form temporarily hands the terminal to cu. Exiting cu returns to the Sylve prompt.