vnactl
vnactl is the operator and automation client for virtnosis-agent.
It does not talk to libvirt directly. It connects to the agent, issues
status, version, or scan requests, and renders the resulting machine
output.
Synopsis#
vnactl status [--connect <unix:///abs-path|abs-path>] [--timeout-ms <n>] [--max-response-bytes <n>] [--raw-json]
vnactl version [--connect <unix:///abs-path|abs-path>] [--timeout-ms <n>] [--max-response-bytes <n>] [--raw-json]
vnactl scan [--connect <unix:///abs-path|abs-path>] [--timeout-ms <n>] [--max-response-bytes <n>] [--raw-json]
[--timeout-ms-agent-scan <n>]
[-f, --format <default|json|xml>]
[--socket <abs-path>] [--uri <uri>] [--program remote|admin]
[--deep-enum-max <n>] [--deep-resolve-max <n>] [--deep-vol-resolve-max <n>]
[--deep-xml-max <n>] [--deep-vol-xml-max <n>]
[--timeout-ms-scan <n>] [--scan-timeout-ms <n>]
[--deep] [--confirm-xml] [--redact] [--verbose]
Commands#
status#
Fetches machine-readable daemon status and capability metadata.
Use it to answer questions such as:
- which socket is the agent actually serving,
- whether socket activation is in effect,
- which peer-auth policy is active,
- which build identity the agent is serving,
- which methods the agent supports.
version#
Fetches machine-readable version and build identity metadata for the serving agent.
scan#
Requests a scan from the agent and prints or streams the resulting report.
Common options#
--connect <target>— agent control target. Public builds accept onlyunix:///absolute/pathor a plain absolute UNIX socket path.--timeout-ms <n>— control-plane connect and request/response timeout in milliseconds.--max-response-bytes <n>— upper bound for accepted response data. Hard-capped at33554432bytes (32 MiB).--raw-json— print the raw JSON response envelope instead of command-specific output.
Scan options#
Target selection#
--socket <abs-path>— libvirt UNIX socket path for the scan--uri <uri>— libvirt URI for the scan--program remote|admin— select the libvirt RPC program family
Current defaults:
- socket:
/var/run/libvirt/libvirt-sock - URI:
qemu:///system - program:
remote
Scan depth and confirmation#
--deep— enable deeper inventory and XML-related analysis--confirm-xml— allow full XML confirmation fetches when prefix evidence is insufficient--redact— redact sensitive values from output--verbose— emit extra diagnostics
Deep scan bounds#
--deep-enum-max <n>— max inventory enumeration per type--deep-resolve-max <n>— max objects resolved per type--deep-vol-resolve-max <n>— max storage volumes resolved per pool--deep-xml-max <n>— max resolved objects per type with XML fetch--deep-vol-xml-max <n>— max resolved volumes per pool with XML fetch
Current defaults:
--deep-enum-max 32--deep-resolve-max 8--deep-vol-resolve-max 16--deep-xml-max 2--deep-vol-xml-max 4
Timeouts and output#
--timeout-ms-agent-scan <n>— longer agent-scan socket timeout while waiting for scan output; default600000ms (10 minutes)--timeout-ms-scan <n>— libvirt scan socket timeout; default5000ms--scan-timeout-ms <n>— requested scan wall-time budget;-1means use the agent default-f, --format default|json|xml— select emitted scan formatting
Rootless behavior#
For non-root users, vnactl auto-prefers:
$XDG_RUNTIME_DIR/virtnosis/agent.sock
when that socket exists. If it is absent or stale, the client falls back to
/run/virtnosis/agent.sock.
Transport model#
The control plane is local UNIX sockets only.
vnactl already classifies future transports and emits explicit
unsupported-transport guidance, but tcp://, tls://, ssh://, http://,
https://, ws://, and wss:// are not public transport inputs.
Examples#
status#
vnactl status --connect unix:///run/virtnosis/agent.sock
Version#
vnactl version --connect /run/virtnosis/agent.sock
Deep scan#
vnactl scan \
--connect unix:///run/virtnosis/agent.sock \
--socket /var/run/libvirt/libvirt-sock \
--uri qemu:///system \
--deep --confirm-xml --redact \
-f json
Considerations#
vnactlis a control-plane client, not a general libvirt management client.scanprefers the streaming scan protocol when the agent advertises it, and falls back to a framed raw-stdout mode for older agents.statusandversionare one-request-per-connection probes so repeated health checks do not accumulate idle handlers in the agent.- Public builds do not expose dedicated fail-policy flags; automation should gate on exit code and inspect structured warning/error records in the report.
See also#
Source repository · Edit this page · View Markdown