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 ofXX
is a sequence of positive decimal numbers, each with optional fraction and a unit suffix, such as300ms
,1.5h
or2h45m
. 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 thec
key 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_directory
configuration parameter. Ifhttp_directory
isn'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.