57 lines
2.4 KiB
TOML
57 lines
2.4 KiB
TOML
# =====================================================================
|
|
# The machines the VM sub-agent can be given.
|
|
#
|
|
# ONE REGISTRY, READ BY FOUR THINGS: the maintenance app (which row is
|
|
# which, and what it is called), vmd (which base image and which saved
|
|
# machine), the sub-agent (how its own machine is described to it), and
|
|
# `vm_agent`'s own `os` parameter.
|
|
#
|
|
# `id` IS IDENTITY AND IS NOT A LABEL.
|
|
#
|
|
# It names the base disk (/var/lib/owuivm/<id>.qcow2), the firmware
|
|
# variables beside it, the systemd unit instance (owuivm-maint@<id>),
|
|
# the saved-machine directory, and the value the assistant passes as
|
|
# `os`. It also appears in regex allowlists inside the privileged launch
|
|
# scripts, which is the whole reason those scripts can refuse a path.
|
|
# Changing an id does not rename a machine, it describes one that does
|
|
# not exist. Leave it alone.
|
|
#
|
|
# `name` is the label, and is yours. It is what the maintenance app
|
|
# shows and what a session report calls the machine. Rename it to
|
|
# whatever you like, from the app or by editing this file; nothing
|
|
# depends on its value.
|
|
#
|
|
# `iso` is the glob that picks installation media out of
|
|
# /var/lib/owuivm/iso. It is deliberately NOT `*.iso`: with an Ubuntu
|
|
# disc sitting next to a Windows one, the newest file in that directory
|
|
# is how a Windows install quietly boots the Ubuntu installer.
|
|
#
|
|
# `shell`, `project` and `example` are prompt text. They are substituted
|
|
# into {shell}, {project} and {example} in configs/agent/tools.toml, and
|
|
# they are the difference between one prompt for both machines and an
|
|
# agent that has to work out which half applies to it. Measured: a
|
|
# Windows session wrote itself the task "check /mnt/project
|
|
# accessibility" because a shared prompt said that was where work
|
|
# survives and nothing told it otherwise.
|
|
# =====================================================================
|
|
|
|
[[machine]]
|
|
id = "ubuntu"
|
|
name = "Ubuntu"
|
|
iso = "ubuntu*.iso"
|
|
|
|
shell = "a root bash login shell - you are already root"
|
|
project = "/mnt/project"
|
|
example = "'src/main.py'"
|
|
|
|
[[machine]]
|
|
id = "windows"
|
|
name = "Windows"
|
|
# Not `*.iso`, and not `windows*.iso` either - the media is normally
|
|
# named Win11_..., so the pattern has to catch both spellings.
|
|
iso = "[Ww]in*.iso"
|
|
|
|
shell = "an elevated PowerShell 5.1 - already administrator, and note it has no `&&` or `||`, so chain with `;` or use separate calls"
|
|
project = "Z:\\"
|
|
example = "'src\\main.ps1'"
|