#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.
| Token | Effect |
|---|---|
<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 character | Typed 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.