3.7 KiB
The boot configuration is very important: boot_command specifies the keys
to type when the virtual machine is first booted in order to start the OS
installer. This command is typed after boot_wait, which gives the virtual
machine some time to actually load.
The boot_command is an array of strings. The strings are all typed in sequence. It is an array only to improve readability within the template.
There are a set of special keys available. If these are in your boot command, they will be replaced by the proper key:
-
<bs>- Backspace -
<del>- Delete -
<enter> <return>- Simulates an actual "enter" or "return" keypress. -
<esc>- Simulates pressing the escape key. -
<tab>- Simulates pressing the tab key. -
<f1> - <f12>- Simulates pressing a function key. -
<up> <down> <left> <right>- Simulates pressing an arrow key. -
<spacebar>- Simulates pressing the spacebar. -
<insert>- Simulates pressing the insert key. -
<home> <end>- Simulates pressing the home and end keys. -
<pageUp> <pageDown>- Simulates pressing the page up and page down keys. -
<menu>- Simulates pressing the Menu key. -
<leftAlt> <rightAlt>- Simulates pressing the alt key. -
<leftCtrl> <rightCtrl>- Simulates pressing the ctrl key. -
<leftShift> <rightShift>- Simulates pressing the shift key. -
<leftSuper> <rightSuper>- Simulates pressing the ⌘ or Windows key. -
<wait> <wait5> <wait10>- Adds a 1, 5 or 10 second pause before sending any additional keys. This is useful if you have to generally wait for the UI to update before typing more. -
<waitXX>- Add an arbitrary pause before sending any additional keys. The format ofXXis a sequence of positive decimal numbers, each with optional fraction and a unit suffix, such as300ms,1.5hor2h45m. Valid time units arens,us(orµs),ms,s,m,h. For example<wait10m>or<wait1m20s>. -
<XXXOn> <XXXOff>- Any printable keyboard character, and of these "special" expressions, with the exception of the<wait>types, can also be toggled on or off. For example, to simulate ctrl+c, use<leftCtrlOn>c<leftCtrlOff>. Be sure to release them, otherwise they will be held down until the machine reboots. To hold theckey down, you would use<cOn>. Likewise,<cOff>to release. -
{{ .HTTPIP }} {{ .HTTPPort }}- The IP and port, respectively of an HTTP server that is started serving the directory specified by thehttp_directoryconfiguration parameter. Ifhttp_directoryisn't specified, these will be blank! -
Name- The name of the VM.
Example boot command. This is actually a working boot command used to start an CentOS 6.4 installer:
"boot_command": [
"<tab><wait>",
" ks=http://{{ .HTTPIP }}:{{ .HTTPPort }}/centos6-ks.cfg<enter>"
]
The example shown below is a working boot command used to start an Ubuntu 12.04 installer:
[
"<esc><esc><enter><wait>",
"/install/vmlinuz noapic ",
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
"debian-installer=en_US auto locale=en_US kbd-chooser/method=us ",
"hostname={{ .Name }} ",
"fb=false debconf/frontend=noninteractive ",
"keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
"keyboard-configuration/variant=USA console-setup/ask_detect=false ",
"initrd=/install/initrd.gz -- <enter>"
]
For more examples of various boot commands, see the sample projects from our community templates page.