RudderVirt

#Boot Commands

bootCommand types keystrokes into the VM's VNC console in order. Use it to drive boot loaders, ISO menus, and any pre-SSH setup.

bootCommand:
    - '<wait20>'
    - '<down><down><enter>'
    - '<wait>'
    - 'http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg'
    - '<enter>'

#Syntax

Each list element is a string mixing literal text with bracketed special tokens.

TokenEffect
<enter>, <return>Enter key
<tab>Tab
<esc>Escape
<bs>, <backspace>Backspace
<del>, <delete>Delete
<spacebar>, <space>Spacebar
<up>, <down>, <left>, <right>Arrow keys
<home>, <end>, <pageUp>, <pageDown>Navigation
<insert>Insert
<f1> through <f12>Function keys
<wait>Wait 1 second (default)
<wait5>, <wait20>, <waitNs>Wait N seconds
<leftCtrlOn>x<leftCtrlOff>Press Ctrl, type x, release Ctrl
<leftAltOn>, <leftShiftOn>, etc.Other modifiers (with matching Off)
Any other characterTyped literally

#Template variables

{{ .HTTPIP }} and {{ .HTTPPort }} are substituted before the keystrokes are typed. They point at Aileron's HTTP server (see httpDirectory).

#Common patterns

Wait for the boot menu, navigate to a menu item, type a URL:

bootCommand:
    - '<wait20>' # let GRUB appear
    - '<down><down><enter>' # navigate to "Advanced"
    - '<wait><down><down><enter>' # navigate to "Automated install"
    - '<wait70>' # let installer load
    - '<leftCtrlOn>a<leftCtrlOff>' # Ctrl+A to clear field
    - 'http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg'
    - '<enter>'

For Windows, the boot command typically just dismisses "Press any key to boot from CD" — a few <enter>s with short waits. Autounattend.xml on the floppy drives the rest of setup.