vmware: document using partials
This commit is contained in:
parent
d344cbab8e
commit
4a61dc3670
|
@ -16,23 +16,21 @@ type ExportConfig struct {
|
|||
// Since ovftool is only capable of password based authentication
|
||||
// remote_password must be set when exporting the VM.
|
||||
Format string `mapstructure:"format" required:"false"`
|
||||
// Extra options to pass to ovftool
|
||||
// during export. Each item in the array is a new argument. The options
|
||||
// --noSSLVerify, --skipManifestCheck, and --targetType are reserved,
|
||||
// and should not be passed to this argument.
|
||||
// Currently, exporting the build VM (with ovftool) is only supported when
|
||||
// building on ESXi e.g. when remote_type is set to esx5. See the
|
||||
// Building on a Remote vSphere
|
||||
// Hypervisor
|
||||
// Extra options to pass to ovftool during export. Each item in the array
|
||||
// is a new argument. The options `--noSSLVerify`, `--skipManifestCheck`,
|
||||
// and `--targetType` are reserved, and should not be passed to this
|
||||
// argument. Currently, exporting the build VM (with ovftool) is only
|
||||
// supported when building on ESXi e.g. when `remote_type` is set to
|
||||
// `esx5`. See the [Building on a Remote vSphere
|
||||
// Hypervisor](/docs/builders/vmware-iso.html#building-on-a-remote-vsphere-hypervisor)
|
||||
// section below for more info.
|
||||
OVFToolOptions []string `mapstructure:"ovftool_options" required:"false"`
|
||||
// Defaults to false. When enabled, Packer will
|
||||
// not export the VM. Useful if the build output is not the resultant
|
||||
// image, but created inside the VM.
|
||||
// Currently, exporting the build VM is only supported when building on
|
||||
// ESXi e.g. when remote_type is set to esx5. See the Building on a
|
||||
// Defaults to `false`. When enabled, Packer will not export the VM. Useful
|
||||
// if the build output is not the resultant image, but created inside the
|
||||
// VM. Currently, exporting the build VM is only supported when building on
|
||||
// ESXi e.g. when `remote_type` is set to `esx5`. See the [Building on a
|
||||
// Remote vSphere
|
||||
// Hypervisor
|
||||
// Hypervisor](/docs/builders/vmware-iso.html#building-on-a-remote-vsphere-hypervisor)
|
||||
// section below for more info.
|
||||
SkipExport bool `mapstructure:"skip_export" required:"false"`
|
||||
// Set this to true if you would like to keep
|
||||
|
|
|
@ -25,11 +25,11 @@ type HWConfig struct {
|
|||
// such as hostonly, nat, or bridged. If the network is not one of these
|
||||
// values, then it is assumed to be a VMware network device. (VMnet0..x)
|
||||
Network string `mapstructure:"network" required:"false"`
|
||||
// This is the ethernet adapter type the the
|
||||
// virtual machine will be created with. By default the e1000 network adapter
|
||||
// type will be used by Packer. For more information, please consult the
|
||||
//
|
||||
// Choosing a network adapter for your virtual machine for desktop VMware
|
||||
// This is the ethernet adapter type the the virtual machine will be
|
||||
// created with. By default the `e1000` network adapter type will be used
|
||||
// by Packer. For more information, please consult [Choosing a network
|
||||
// adapter for your virtual
|
||||
// machine](https://kb.vmware.com/s/article/1001805) for desktop VMware
|
||||
// clients. For ESXi, refer to the proper ESXi documentation.
|
||||
NetworkAdapterType string `mapstructure:"network_adapter_type" required:"false"`
|
||||
// Specify whether to enable VMware's virtual soundcard
|
||||
|
@ -41,12 +41,53 @@ type HWConfig struct {
|
|||
// the usb_xhci.present property.
|
||||
USB bool `mapstructure:"usb" required:"false"`
|
||||
// This specifies a serial port to add to the VM.
|
||||
// It has a format of Type:option1,option2,.... The field Type can be one
|
||||
// of the following values: FILE, DEVICE, PIPE, AUTO, or NONE.
|
||||
// It has a format of `Type:option1,option2,...`. The field `Type` can be one
|
||||
// of the following values: `FILE`, `DEVICE`, `PIPE`, `AUTO`, or `NONE`.
|
||||
//
|
||||
// * `FILE:path(,yield)` - Specifies the path to the local file to be used as the
|
||||
// serial port.
|
||||
// * `yield` (bool) - This is an optional boolean that specifies whether
|
||||
// the vm should yield the cpu when polling the port.
|
||||
// By default, the builder will assume this as `FALSE`.
|
||||
// * `DEVICE:path(,yield)` - Specifies the path to the local device to be used
|
||||
// as the serial port. If `path` is empty, then
|
||||
// default to the first serial port.
|
||||
// * `yield` (bool) - This is an optional boolean that specifies whether
|
||||
// the vm should yield the cpu when polling the port.
|
||||
// By default, the builder will assume this as `FALSE`.
|
||||
// * `PIPE:path,endpoint,host(,yield)` - Specifies to use the named-pipe "path"
|
||||
// as a serial port. This has a few
|
||||
// options that determine how the VM
|
||||
// should use the named-pipe.
|
||||
// * `endpoint` (string) - Chooses the type of the VM-end, which can be
|
||||
// either a `client` or `server`.
|
||||
// * `host` (str`ing) - Chooses the type of the host-end, which can be either
|
||||
// an `app` (application) or `vm` (another virtual-machine).
|
||||
// * `yield` (bool) - This is an optional boolean that specifies whether
|
||||
// the vm should yield the cpu when polling the port.
|
||||
// By default, the builder will assume this as `FALSE`.
|
||||
//
|
||||
// * `AUTO:(yield)` - Specifies to use auto-detection to determine the serial
|
||||
// port to use. This has one option to determine how the VM
|
||||
// should support the serial port.
|
||||
// * `yield` (bool) - This is an optional boolean that specifies whether
|
||||
// the vm should yield the cpu when polling the port.
|
||||
// By default, the builder will assume this as `FALSE`.
|
||||
// * `NONE` - Specifies to not use a serial port. (default)
|
||||
Serial string `mapstructure:"serial" required:"false"`
|
||||
// This specifies a parallel port to add to the VM. It
|
||||
// has the format of Type:option1,option2,.... Type can be one of the
|
||||
// following values: FILE, DEVICE, AUTO, or NONE.
|
||||
// has the format of `Type:option1,option2,...`. Type can be one of the
|
||||
// following values: `FILE`, `DEVICE`, `AUTO`, or `NONE`.
|
||||
//
|
||||
// * `FILE:path` - Specifies the path to the local file to be used for the
|
||||
// parallel port.
|
||||
// * `DEVICE:path` - Specifies the path to the local device to be used for the
|
||||
// parallel port.
|
||||
// * `AUTO:direction` - Specifies to use auto-detection to determine the
|
||||
// parallel port. Direction can be `BI` to specify
|
||||
// bidirectional communication or `UNI` to specify
|
||||
// unidirectional communication.
|
||||
// * `NONE` - Specifies to not use a parallel port. (default)
|
||||
Parallel string `mapstructure:"parallel" required:"false"`
|
||||
}
|
||||
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
//go:generate struct-markdown
|
||||
|
||||
package common
|
||||
|
||||
import (
|
||||
|
@ -12,8 +14,10 @@ type SSHConfig struct {
|
|||
|
||||
// These are deprecated, but we keep them around for BC
|
||||
// TODO(@mitchellh): remove
|
||||
SSHSkipRequestPty bool `mapstructure:"ssh_skip_request_pty"`
|
||||
SSHWaitTimeout time.Duration `mapstructure:"ssh_wait_timeout"`
|
||||
SSHSkipRequestPty bool `mapstructure:"ssh_skip_request_pty"`
|
||||
// These are deprecated, but we keep them around for BC
|
||||
// TODO(@mitchellh): remove
|
||||
SSHWaitTimeout time.Duration `mapstructure:"ssh_wait_timeout"`
|
||||
}
|
||||
|
||||
func (c *SSHConfig) Prepare(ctx *interpolate.Context) []error {
|
||||
|
|
|
@ -11,13 +11,12 @@ type ToolsConfig struct {
|
|||
// upload into the VM. Valid values are darwin, linux, and windows. By
|
||||
// default, this is empty, which means VMware tools won't be uploaded.
|
||||
ToolsUploadFlavor string `mapstructure:"tools_upload_flavor" required:"false"`
|
||||
// The path in the VM to upload the
|
||||
// VMware tools. This only takes effect if tools_upload_flavor is non-empty.
|
||||
// This is a configuration
|
||||
// template that has a single
|
||||
// valid variable: Flavor, which will be the value of tools_upload_flavor.
|
||||
// By default the upload path is set to {{.Flavor}}.iso. This setting is not
|
||||
// used when remote_type is esx5.
|
||||
// The path in the VM to upload the VMware tools. This only takes effect if
|
||||
// `tools_upload_flavor` is non-empty. This is a [configuration
|
||||
// template](/docs/templates/engine.html) that has a single valid variable:
|
||||
// `Flavor`, which will be the value of `tools_upload_flavor`. By default
|
||||
// the upload path is set to `{{.Flavor}}.iso`. This setting is not used
|
||||
// when `remote_type` is `esx5`.
|
||||
ToolsUploadPath string `mapstructure:"tools_upload_path" required:"false"`
|
||||
}
|
||||
|
||||
|
|
|
@ -38,15 +38,15 @@ type Config struct {
|
|||
// fixed-size virtual hard disks, so the actual file representing the disk will
|
||||
// not use the full size unless it is full.
|
||||
AdditionalDiskSize []uint `mapstructure:"disk_additional_size" required:"false"`
|
||||
// The adapter type of the VMware virtual disk
|
||||
// to create. This option is for advanced usage, modify only if you know what
|
||||
// you're doing. Some of the options you can specify are ide, sata, nvme
|
||||
// or scsi (which uses the "lsilogic" scsi interface by default). If you
|
||||
// specify another option, Packer will assume that you're specifying a scsi
|
||||
// interface of that specified type. For more information, please consult the
|
||||
//
|
||||
// Virtual Disk Manager User's Guide for desktop VMware clients.
|
||||
// For ESXi, refer to the proper ESXi documentation.
|
||||
// The adapter type of the VMware virtual disk to create. This option is
|
||||
// for advanced usage, modify only if you know what you're doing. Some of
|
||||
// the options you can specify are `ide`, `sata`, `nvme` or `scsi` (which
|
||||
// uses the "lsilogic" scsi interface by default). If you specify another
|
||||
// option, Packer will assume that you're specifying a `scsi` interface of
|
||||
// that specified type. For more information, please consult [Virtual Disk
|
||||
// Manager User's Guide](http://www.vmware.com/pdf/VirtualDiskManager.pdf)
|
||||
// for desktop VMware clients. For ESXi, refer to the proper ESXi
|
||||
// documentation.
|
||||
DiskAdapterType string `mapstructure:"disk_adapter_type" required:"false"`
|
||||
// The filename of the virtual disk that'll be created,
|
||||
// without the extension. This defaults to packer.
|
||||
|
@ -58,6 +58,28 @@ type Config struct {
|
|||
DiskSize uint `mapstructure:"disk_size" required:"false"`
|
||||
// The type of VMware virtual disk to create. This
|
||||
// option is for advanced usage.
|
||||
//
|
||||
// For desktop VMware clients:
|
||||
//
|
||||
// Type ID | Description
|
||||
// ------- | ---
|
||||
// `0` | Growable virtual disk contained in a single file (monolithic sparse).
|
||||
// `1` | Growable virtual disk split into 2GB files (split sparse).
|
||||
// `2` | Preallocated virtual disk contained in a single file (monolithic flat).
|
||||
// `3` | Preallocated virtual disk split into 2GB files (split flat).
|
||||
// `4` | Preallocated virtual disk compatible with ESX server (VMFS flat).
|
||||
// `5` | Compressed disk optimized for streaming.
|
||||
//
|
||||
// The default is `1`.
|
||||
//
|
||||
// For ESXi, this defaults to `zeroedthick`. The available options for ESXi
|
||||
// are: `zeroedthick`, `eagerzeroedthick`, `thin`. `rdm:dev`, `rdmp:dev`,
|
||||
// `2gbsparse` are not supported. Due to default disk compaction, when using
|
||||
// `zeroedthick` or `eagerzeroedthick` set `skip_compaction` to `true`.
|
||||
//
|
||||
// For more information, please consult the [Virtual Disk Manager User's
|
||||
// Guide](https://www.vmware.com/pdf/VirtualDiskManager.pdf) for desktop
|
||||
// VMware clients. For ESXi, refer to the proper ESXi documentation.
|
||||
DiskTypeId string `mapstructure:"disk_type_id" required:"false"`
|
||||
// Either "ovf", "ova" or "vmx", this specifies the output
|
||||
// format of the exported virtual machine. This defaults to "ovf".
|
||||
|
@ -78,10 +100,10 @@ type Config struct {
|
|||
// changes to better support the operating system running in the
|
||||
// virtual machine.
|
||||
GuestOSType string `mapstructure:"guest_os_type" required:"false"`
|
||||
// The vmx hardware
|
||||
// version
|
||||
// The [vmx hardware
|
||||
// version](http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003746)
|
||||
// for the new virtual machine. Only the default value has been tested, any
|
||||
// other value is experimental. Default value is 9.
|
||||
// other value is experimental. Default value is `9`.
|
||||
Version string `mapstructure:"version" required:"false"`
|
||||
// This is the name of the VMX file for the new virtual
|
||||
// machine, without the file extension. By default this is packer-BUILDNAME,
|
||||
|
@ -89,12 +111,11 @@ type Config struct {
|
|||
VMName string `mapstructure:"vm_name" required:"false"`
|
||||
|
||||
VMXDiskTemplatePath string `mapstructure:"vmx_disk_template_path"`
|
||||
// Path to a configuration
|
||||
// template that defines the
|
||||
// contents of the virtual machine VMX file for VMware. This is for advanced
|
||||
// users only as this can render the virtual machine non-functional. See
|
||||
// below for more information. For basic VMX modifications, try
|
||||
// vmx_data first.
|
||||
// Path to a [configuration template](/docs/templates/engine.html) that
|
||||
// defines the contents of the virtual machine VMX file for VMware. This is
|
||||
// for **advanced users only** as this can render the virtual machine
|
||||
// non-functional. See below for more information. For basic VMX
|
||||
// modifications, try `vmx_data` first.
|
||||
VMXTemplatePath string `mapstructure:"vmx_template_path" required:"false"`
|
||||
|
||||
ctx interpolate.Context
|
||||
|
|
|
@ -49,412 +49,125 @@ self-install. Still, the example serves to show the basic configuration:
|
|||
}
|
||||
```
|
||||
|
||||
## ISO Configuration Reference
|
||||
## VMware-ISO Builder Configuration Reference
|
||||
|
||||
There are many configuration options available for the builder. In addition to
|
||||
the items listed here, you will want to look at the general configuration
|
||||
references for [ISO](#iso-configuration),
|
||||
[HTTP](#http-directory-configuration),
|
||||
[Floppy](#floppy-configuration),
|
||||
[Boot](#boot-configuration),
|
||||
[Driver](#driver-configuration),
|
||||
[Hardware](#hardware-configuration),
|
||||
[Output](#output-configuration),
|
||||
[Run](#run-configuration),
|
||||
[Shutdown](#shutdown-configuration),
|
||||
[Communicator](#communicator-configuration),
|
||||
[Tools](#tools-configuration),
|
||||
[vmx](#vmx-configuration),
|
||||
[Export](#export-configuration),
|
||||
configuration references, which are
|
||||
necessary for this build to succeed and can be found further down the page.
|
||||
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/iso/Config-not-required" %>
|
||||
|
||||
### ISO Configuration
|
||||
|
||||
<%= partial "partials/common/ISOConfig" %>
|
||||
|
||||
### Required:
|
||||
#### Required:
|
||||
|
||||
<%= partial "partials/common/ISOConfig-required" %>
|
||||
|
||||
### Optional:
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/common/ISOConfig-not-required" %>
|
||||
|
||||
## Configuration Reference
|
||||
|
||||
There are many configuration options available for the VMware builder. They are
|
||||
organized below into two categories: required and optional. Within each
|
||||
category, the available options are alphabetized and described.
|
||||
|
||||
In addition to the options listed here, a
|
||||
[communicator](/docs/templates/communicator.html) can be configured for this
|
||||
builder.
|
||||
|
||||
### Optional:
|
||||
|
||||
- `boot_command` (array of strings) - This is an array of commands to type
|
||||
when the virtual machine is first booted. The goal of these commands should
|
||||
be to type just enough to initialize the operating system installer. Special
|
||||
keys can be typed as well, and are covered in the section below on the
|
||||
boot command. If this is not specified, it is assumed the installer will
|
||||
start itself.
|
||||
|
||||
- `boot_wait` (string) - The time to wait after booting the initial virtual
|
||||
machine before typing the `boot_command`. The value of this should be
|
||||
a duration. Examples are `5s` and `1m30s` which will cause Packer to wait
|
||||
five seconds and one minute 30 seconds, respectively. If this isn't
|
||||
specified, the default is `10s` or 10 seconds.
|
||||
|
||||
- `cpus` (number) - The number of cpus to use when building the VM.
|
||||
|
||||
- `cores` (number) - The number of cores per socket to use when building the VM.
|
||||
This corresponds to the `cpuid.coresPerSocket` option in the .vmx file.
|
||||
|
||||
- `cdrom_adapter_type` (string) - The adapter type (or bus) that will be used
|
||||
by the cdrom device. This is chosen by default based on the disk adapter
|
||||
type. VMware tends to lean towards `ide` for the cdrom device unless
|
||||
`sata` is chosen for the disk adapter and so Packer attempts to mirror
|
||||
this logic. This field can be specified as either `ide`, `sata`, or `scsi`.
|
||||
|
||||
- `disable_vnc` (boolean) - Whether to create a VNC connection or not.
|
||||
A `boot_command` cannot be used when this is `true`. Defaults to `false`.
|
||||
|
||||
- `disk_adapter_type` (string) - The adapter type of the VMware virtual disk
|
||||
to create. This option is for advanced usage, modify only if you know what
|
||||
you're doing. Some of the options you can specify are `ide`, `sata`, `nvme`
|
||||
or `scsi` (which uses the "lsilogic" scsi interface by default). If you
|
||||
specify another option, Packer will assume that you're specifying a `scsi`
|
||||
interface of that specified type. For more information, please consult the
|
||||
<a href="http://www.vmware.com/pdf/VirtualDiskManager.pdf" target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Virtual Disk Manager User's Guide</a> for desktop VMware clients.
|
||||
For ESXi, refer to the proper ESXi documentation.
|
||||
|
||||
- `disk_additional_size` (array of integers) - The size(s) of any additional
|
||||
hard disks for the VM in megabytes. If this is not specified then the VM
|
||||
will only contain a primary hard disk. The builder uses expandable, not
|
||||
fixed-size virtual hard disks, so the actual file representing the disk will
|
||||
not use the full size unless it is full.
|
||||
|
||||
- `disk_size` (number) - The size of the hard disk for the VM in megabytes.
|
||||
The builder uses expandable, not fixed-size virtual hard disks, so the
|
||||
actual file representing the disk will not use the full size unless it
|
||||
is full. By default this is set to `40000` (about 40 GB).
|
||||
|
||||
- `disk_type_id` (string) - The type of VMware virtual disk to create. This
|
||||
option is for advanced usage.
|
||||
|
||||
For desktop VMware clients:
|
||||
|
||||
Type ID | Description
|
||||
--- | ---
|
||||
`0` | Growable virtual disk contained in a single file (monolithic sparse).
|
||||
`1` | Growable virtual disk split into 2GB files (split sparse).
|
||||
`2` | Preallocated virtual disk contained in a single file (monolithic flat).
|
||||
`3` | Preallocated virtual disk split into 2GB files (split flat).
|
||||
`4` | Preallocated virtual disk compatible with ESX server (VMFS flat).
|
||||
`5` | Compressed disk optimized for streaming.
|
||||
|
||||
The default is `1`.
|
||||
|
||||
For ESXi, this defaults to `zeroedthick`. The available options for ESXi
|
||||
are: `zeroedthick`, `eagerzeroedthick`, `thin`. `rdm:dev`, `rdmp:dev`,
|
||||
`2gbsparse` are not supported. Due to default disk compaction, when using
|
||||
`zeroedthick` or `eagerzeroedthick` set `skip_compaction` to `true`.
|
||||
|
||||
For more information, please consult the [Virtual Disk Manager User's
|
||||
Guide](https://www.vmware.com/pdf/VirtualDiskManager.pdf) for desktop
|
||||
VMware clients. For ESXi, refer to the proper ESXi documentation.
|
||||
|
||||
- `display_name` (string) - The name that will appear in your vSphere client,
|
||||
and will be used for the vmx basename. This will override the "displayname"
|
||||
value in your vmx file. It will also override the "displayname" if you have
|
||||
set it in the "vmx_data" Packer option. This option is useful if you are
|
||||
chaining vmx builds and want to make sure that the display name of each step
|
||||
in the chain is unique.
|
||||
|
||||
- `floppy_dirs` (array of strings) - A list of directories to place onto
|
||||
the floppy disk recursively. This is similar to the `floppy_files` option
|
||||
except that the directory structure is preserved. This is useful for when
|
||||
your floppy disk includes drivers or if you just want to organize it's
|
||||
contents as a hierarchy. Wildcard characters (\*, ?, and \[\]) are allowed.
|
||||
|
||||
- `floppy_files` (array of strings) - A list of files to place onto a floppy
|
||||
disk that is attached when the VM is booted. This is most useful for
|
||||
unattended Windows installs, which look for an `Autounattend.xml` file on
|
||||
removable media. By default, no floppy will be attached. All files listed in
|
||||
this setting get placed into the root directory of the floppy and the floppy
|
||||
is attached as the first floppy device. Currently, no support exists for
|
||||
creating sub-directories on the floppy. Wildcard characters (\*, ?,
|
||||
and \[\]) are allowed. Directory names are also allowed, which will add all
|
||||
the files found in the directory to the floppy.
|
||||
|
||||
- `fusion_app_path` (string) - Path to "VMware Fusion.app". By default this is
|
||||
`/Applications/VMware Fusion.app` but this setting allows you to
|
||||
customize this.
|
||||
|
||||
- `guest_os_type` (string) - The guest OS type being installed. This will be
|
||||
set in the VMware VMX. By default this is `other`. By specifying a more
|
||||
specific OS type, VMware may perform some optimizations or virtual hardware
|
||||
changes to better support the operating system running in the
|
||||
virtual machine.
|
||||
|
||||
- `headless` (boolean) - Packer defaults to building VMware virtual machines
|
||||
by launching a GUI that shows the console of the machine being built. When
|
||||
this value is set to `true`, the machine will start without a console. For
|
||||
VMware machines, Packer will output VNC connection information in case you
|
||||
need to connect to the console to debug the build process.
|
||||
|
||||
- `http_directory` (string) - Path to a directory to serve using an
|
||||
HTTP server. The files in this directory will be available over HTTP that
|
||||
will be requestable from the virtual machine. This is useful for hosting
|
||||
kickstart files and so on. By default this is an empty string, which means
|
||||
no HTTP server will be started. The address and port of the HTTP server will
|
||||
be available as variables in `boot_command`. This is covered in more detail
|
||||
below.
|
||||
|
||||
- `http_port_min` and `http_port_max` (number) - These are the minimum and
|
||||
maximum port to use for the HTTP server started to serve the
|
||||
`http_directory`. Because Packer often runs in parallel, Packer will choose
|
||||
a randomly available port in this range to run the HTTP server. If you want
|
||||
to force the HTTP server to be on one port, make this minimum and maximum
|
||||
port the same. By default the values are `8000` and `9000`, respectively.
|
||||
|
||||
- `memory` (number) - The amount of memory to use when building the VM
|
||||
in megabytes.
|
||||
|
||||
- `network` (string) - This is the network type that the virtual machine will
|
||||
be created with. This can be one of the generic values that map to a device
|
||||
such as `hostonly`, `nat`, or `bridged`. If the network is not one of these
|
||||
values, then it is assumed to be a VMware network device. (VMnet0..x)
|
||||
|
||||
- `network_adapter_type` (string) - This is the ethernet adapter type the the
|
||||
virtual machine will be created with. By default the `e1000` network adapter
|
||||
type will be used by Packer. For more information, please consult the
|
||||
<a href="https://kb.vmware.com/s/article/1001805" target="_blank"
|
||||
rel="nofollow noopener noreferrer">
|
||||
Choosing a network adapter for your virtual machine</a> for desktop VMware
|
||||
clients. For ESXi, refer to the proper ESXi documentation.
|
||||
|
||||
- `output_directory` (string) - This is the path to the directory where the
|
||||
resulting virtual machine will be created. This may be relative or absolute.
|
||||
If relative, the path is relative to the working directory when `packer`
|
||||
is executed. This directory must not exist or be empty prior to running
|
||||
the builder. By default this is `output-BUILDNAME` where "BUILDNAME" is the
|
||||
name of the build.
|
||||
|
||||
- `parallel` (string) - This specifies a parallel port to add to the VM. It
|
||||
has the format of `Type:option1,option2,...`. Type can be one of the
|
||||
following values: `FILE`, `DEVICE`, `AUTO`, or `NONE`.
|
||||
|
||||
* `FILE:path` - Specifies the path to the local file to be used for the
|
||||
parallel port.
|
||||
* `DEVICE:path` - Specifies the path to the local device to be used for the
|
||||
parallel port.
|
||||
* `AUTO:direction` - Specifies to use auto-detection to determine the
|
||||
parallel port. Direction can be `BI` to specify
|
||||
bidirectional communication or `UNI` to specify
|
||||
unidirectional communication.
|
||||
* `NONE` - Specifies to not use a parallel port. (default)
|
||||
|
||||
- `remote_cache_datastore` (string) - The path to the datastore where
|
||||
supporting files will be stored during the build on the remote machine. By
|
||||
default this is the same as the `remote_datastore` option. This only has an
|
||||
effect if `remote_type` is enabled.
|
||||
|
||||
- `remote_cache_directory` (string) - The path where the ISO and/or floppy
|
||||
files will be stored during the build on the remote machine. The path is
|
||||
relative to the `remote_cache_datastore` on the remote machine. By default
|
||||
this is `packer_cache`. This only has an effect if `remote_type`
|
||||
is enabled.
|
||||
|
||||
- `remote_datastore` (string) - The path to the datastore where the resulting
|
||||
VM will be stored when it is built on the remote machine. By default this
|
||||
is `datastore1`. This only has an effect if `remote_type` is enabled.
|
||||
|
||||
- `remote_host` (string) - The host of the remote machine used for access.
|
||||
This is only required if `remote_type` is enabled.
|
||||
|
||||
- `remote_password` (string) - The SSH password for the user used to access
|
||||
the remote machine. By default this is empty. This only has an effect if
|
||||
`remote_type` is enabled.
|
||||
|
||||
- `remote_private_key_file` (string) - The path to the PEM encoded private key
|
||||
file for the user used to access the remote machine. By default this is empty.
|
||||
This only has an effect if `remote_type` is enabled.
|
||||
|
||||
- `remote_type` (string) - The type of remote machine that will be used to
|
||||
build this VM rather than a local desktop product. The only value accepted
|
||||
for this currently is `esx5`. If this is not set, a desktop product will
|
||||
be used. By default, this is not set.
|
||||
|
||||
- `remote_username` (string) - The username for the SSH user that will access
|
||||
the remote machine. This is required if `remote_type` is enabled.
|
||||
|
||||
- `serial` (string) - This specifies a serial port to add to the VM.
|
||||
It has a format of `Type:option1,option2,...`. The field `Type` can be one
|
||||
of the following values: `FILE`, `DEVICE`, `PIPE`, `AUTO`, or `NONE`.
|
||||
|
||||
* `FILE:path(,yield)` - Specifies the path to the local file to be used as the
|
||||
serial port.
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
* `DEVICE:path(,yield)` - Specifies the path to the local device to be used
|
||||
as the serial port. If `path` is empty, then
|
||||
default to the first serial port.
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
* `PIPE:path,endpoint,host(,yield)` - Specifies to use the named-pipe "path"
|
||||
as a serial port. This has a few
|
||||
options that determine how the VM
|
||||
should use the named-pipe.
|
||||
* `endpoint` (string) - Chooses the type of the VM-end, which can be
|
||||
either a `client` or `server`.
|
||||
* `host` (string) - Chooses the type of the host-end, which can be either
|
||||
an `app` (application) or `vm` (another virtual-machine).
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
|
||||
* `AUTO:(yield)` - Specifies to use auto-detection to determine the serial
|
||||
port to use. This has one option to determine how the VM
|
||||
should support the serial port.
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
* `NONE` - Specifies to not use a serial port. (default)
|
||||
|
||||
- `shutdown_command` (string) - The command to use to gracefully shut down the
|
||||
machine once all the provisioning is done. By default this is an empty
|
||||
string, which tells Packer to just forcefully shut down the machine.
|
||||
|
||||
- `shutdown_timeout` (string) - The amount of time to wait after executing the
|
||||
`shutdown_command` for the virtual machine to actually shut down. If it
|
||||
doesn't shut down in this time, it is an error. By default, the timeout is
|
||||
`5m` or five minutes.
|
||||
|
||||
- `skip_compaction` (boolean) - VMware-created disks are defragmented and
|
||||
compacted at the end of the build process using `vmware-vdiskmanager` or
|
||||
`vmkfstools` in ESXi. In certain rare cases, this might actually end up
|
||||
making the resulting disks slightly larger. If you find this to be the case,
|
||||
you can disable compaction using this configuration value. Defaults to
|
||||
`false`. Default to `true` for ESXi when `disk_type_id` is not explicitly
|
||||
defined and `false` otherwise.
|
||||
|
||||
- `skip_export` (boolean) - Defaults to `false`. When enabled, Packer will
|
||||
not export the VM. Useful if the build output is not the resultant
|
||||
image, but created inside the VM.
|
||||
Currently, exporting the build VM is only supported when building on
|
||||
ESXi e.g. when `remote_type` is set to `esx5`. See the [Building on a
|
||||
Remote vSphere
|
||||
Hypervisor](/docs/builders/vmware-iso.html#building-on-a-remote-vsphere-hypervisor)
|
||||
section below for more info.
|
||||
|
||||
- `keep_registered` (boolean) - Set this to `true` if you would like to keep
|
||||
the VM registered with the remote ESXi server. If you do not need to export
|
||||
the vm, then also set `skip_export: true` in order to avoid an unnecessary
|
||||
step of using ovftool to export the vm. Defaults to `false`.
|
||||
|
||||
- `ovftool_options` (array of strings) - Extra options to pass to ovftool
|
||||
during export. Each item in the array is a new argument. The options
|
||||
`--noSSLVerify`, `--skipManifestCheck`, and `--targetType` are reserved,
|
||||
and should not be passed to this argument.
|
||||
Currently, exporting the build VM (with ovftool) is only supported when
|
||||
building on ESXi e.g. when `remote_type` is set to `esx5`. See the
|
||||
[Building on a Remote vSphere
|
||||
Hypervisor](/docs/builders/vmware-iso.html#building-on-a-remote-vsphere-hypervisor)
|
||||
section below for more info.
|
||||
|
||||
- `skip_validate_credentials` (boolean) - When Packer is preparing to run a
|
||||
remote esxi build, and export is not disable, by default it runs a no-op
|
||||
ovftool command to make sure that the remote_username and remote_password
|
||||
given are valid. If you set this flag to `true`, Packer will skip this
|
||||
validation. Default: `false`.
|
||||
|
||||
- `sound` (boolean) - Specify whether to enable VMware's virtual soundcard
|
||||
device when building the VM. Defaults to `false`.
|
||||
|
||||
- `tools_upload_flavor` (string) - The flavor of the VMware Tools ISO to
|
||||
upload into the VM. Valid values are `darwin`, `linux`, and `windows`. By
|
||||
default, this is empty, which means VMware tools won't be uploaded.
|
||||
|
||||
- `tools_upload_path` (string) - The path in the VM to upload the
|
||||
VMware tools. This only takes effect if `tools_upload_flavor` is non-empty.
|
||||
This is a [configuration
|
||||
template](/docs/templates/engine.html) that has a single
|
||||
valid variable: `Flavor`, which will be the value of `tools_upload_flavor`.
|
||||
By default the upload path is set to `{{.Flavor}}.iso`. This setting is not
|
||||
used when `remote_type` is `esx5`.
|
||||
|
||||
- `usb` (boolean) - Enable VMware's USB bus when building the guest VM.
|
||||
Defaults to `false`. To enable usage of the XHCI bus for USB 3 (5 Gbit/s),
|
||||
one can use the `vmx_data` option to enable it by specifying `true` for
|
||||
the `usb_xhci.present` property.
|
||||
|
||||
- `version` (string) - The [vmx hardware
|
||||
version](http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003746)
|
||||
for the new virtual machine. Only the default value has been tested, any
|
||||
other value is experimental. Default value is `9`.
|
||||
|
||||
- `vm_name` (string) - This is the name of the VMX file for the new virtual
|
||||
machine, without the file extension. By default this is `packer-BUILDNAME`,
|
||||
where "BUILDNAME" is the name of the build.
|
||||
|
||||
- `vmdk_name` (string) - The filename of the virtual disk that'll be created,
|
||||
without the extension. This defaults to `packer`.
|
||||
|
||||
- `vmx_data` (object of key/value strings) - Arbitrary key/values to enter
|
||||
into the virtual machine VMX file. This is for advanced users who want to
|
||||
set properties that aren't yet supported by the builder.
|
||||
|
||||
- `vmx_data_post` (object of key/value strings) - Identical to `vmx_data`,
|
||||
except that it is run after the virtual machine is shutdown, and before the
|
||||
virtual machine is exported.
|
||||
|
||||
- `vmx_remove_ethernet_interfaces` (boolean) - Remove all ethernet interfaces
|
||||
from the VMX file after building. This is for advanced users who understand
|
||||
the ramifications, but is useful for building Vagrant boxes since Vagrant
|
||||
will create ethernet interfaces when provisioning a box. Defaults to
|
||||
`false`.
|
||||
|
||||
- `vmx_template_path` (string) - Path to a [configuration
|
||||
template](/docs/templates/engine.html) that defines the
|
||||
contents of the virtual machine VMX file for VMware. This is for **advanced
|
||||
users only** as this can render the virtual machine non-functional. See
|
||||
below for more information. For basic VMX modifications, try
|
||||
`vmx_data` first.
|
||||
|
||||
- `vnc_bind_address` (string / IP address) - The IP address that should be
|
||||
binded to for VNC. By default packer will use `127.0.0.1` for this. If you
|
||||
wish to bind to all interfaces use `0.0.0.0`.
|
||||
|
||||
- `vnc_disable_password` (boolean) - Don't auto-generate a VNC password that
|
||||
is used to secure the VNC communication with the VM. This must be set to
|
||||
`true` if building on ESXi 6.5 and 6.7 with VNC enabled. Defaults to
|
||||
`false`.
|
||||
|
||||
- `vnc_port_min` and `vnc_port_max` (number) - The minimum and maximum port
|
||||
to use for VNC access to the virtual machine. The builder uses VNC to type
|
||||
the initial `boot_command`. Because Packer generally runs in parallel,
|
||||
Packer uses a randomly chosen port in this range that appears available. By
|
||||
default this is `5900` to `6000`. The minimum and maximum ports are
|
||||
inclusive.
|
||||
|
||||
## Boot Command
|
||||
|
||||
The `boot_command` configuration is very important: it 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 ISO.
|
||||
|
||||
As documented above, 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.
|
||||
|
||||
The boot command is "typed" character for character over a VNC connection to the
|
||||
machine, simulating a human actually typing the keyboard.
|
||||
|
||||
-> Keystrokes are typed as separate key up/down events over VNC with a
|
||||
default 100ms delay. The delay alleviates issues with latency and CPU
|
||||
contention. You can tune this delay on a per-builder basis by specifying
|
||||
"boot_key_interval" in your Packer template, for example:
|
||||
|
||||
```
|
||||
{
|
||||
"builders": [
|
||||
{
|
||||
"type": "vmware-iso",
|
||||
"boot_key_interval": "10ms"
|
||||
...
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
<%= partial "partials/builders/boot-command" %>
|
||||
### Http directory configuration
|
||||
|
||||
<%= partial "partials/common/HTTPConfig" %>
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/common/HTTPConfig-not-required" %>
|
||||
|
||||
### Floppy configuration
|
||||
|
||||
<%= partial "partials/common/FloppyConfig" %>
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/common/FloppyConfig-not-required" %>
|
||||
|
||||
### Shutdown configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/common/shutdowncommand/ShutdownConfig-not-required" %>
|
||||
|
||||
### Driver configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/common/DriverConfig-not-required" %>
|
||||
|
||||
### Hardware configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/common/HWConfig-not-required" %>
|
||||
|
||||
### Output configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/common/OutputConfig-not-required" %>
|
||||
|
||||
### Run configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/common/RunConfig-not-required" %>
|
||||
|
||||
### Tools configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/common/ToolsConfig-not-required" %>
|
||||
|
||||
### VMX configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/common/VMXConfig-not-required" %>
|
||||
|
||||
### Export configuration
|
||||
|
||||
#### Optional:
|
||||
|
||||
<%= partial "partials/builder/vmware/common/ExportConfig-not-required" %>
|
||||
|
||||
### Communicator configuration
|
||||
|
||||
#### Optional common fields:
|
||||
|
||||
<%= partial "partials/helper/communicator/Config-not-required" %>
|
||||
|
||||
#### Optional SSH fields:
|
||||
|
||||
<%= partial "partials/helper/communicator/SSH-not-required" %>
|
||||
<%= partial "partials/builder/vmware/common/SSHConfig-not-required" %>
|
||||
|
||||
#### Optional WinRM fields:
|
||||
|
||||
<%= partial "partials/helper/communicator/WinRM-not-required" %>
|
||||
|
||||
## Boot Configuration
|
||||
|
||||
<%= partial "partials/common/bootcommand/BootConfig" %>
|
||||
<%= partial "partials/common/bootcommand/VNCConfig" %>
|
||||
|
||||
-> **Note**: for the `HTTPIP` to be resolved correctly, your VM's network
|
||||
configuration has to include a `hostonly` or `nat` type network interface.
|
||||
|
@ -462,22 +175,10 @@ If you are using this feature, it is recommended to leave the default network
|
|||
configuration while you are building the VM, and use the `vmx_data_post` hook
|
||||
to modify the network configuration after the VM is done building.
|
||||
|
||||
Example boot command. This is actually a working boot command used to start an
|
||||
Ubuntu 12.04 installer:
|
||||
#### Optional:
|
||||
|
||||
``` text
|
||||
[
|
||||
"<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>"
|
||||
]
|
||||
```
|
||||
<%= partial "partials/common/bootcommand/VNCConfig-not-required" %>
|
||||
<%= partial "partials/common/bootcommand/BootConfig-not-required" %>
|
||||
|
||||
For more examples of various boot commands, see the sample projects from our
|
||||
[community templates page](/community-tools.html#templates).
|
||||
|
|
|
@ -54,220 +54,107 @@ In addition to the options listed here, a
|
|||
[communicator](/docs/templates/communicator.html) can be configured for this
|
||||
builder.
|
||||
|
||||
|
||||
## Configuration Reference
|
||||
|
||||
There are many configuration options available for the builder. In addition to
|
||||
the items listed here, you will want to look at the general configuration
|
||||
references for
|
||||
[HTTP](#http-directory-configuration),
|
||||
[Floppy](#floppy-configuration),
|
||||
[Boot](#boot-configuration),
|
||||
[Driver](#driver-configuration),
|
||||
[Output](#output-configuration),
|
||||
[Run](#run-configuration),
|
||||
[Shutdown](#shutdown-configuration),
|
||||
[Communicator](#communicator-configuration),
|
||||
[Tools](#tools-configuration),
|
||||
[vmx](#vmx-configuration),
|
||||
[Export](#export-configuration),
|
||||
configuration references, which are
|
||||
necessary for this build to succeed and can be found further down the page.
|
||||
|
||||
### Required:
|
||||
|
||||
- `source_path` (string) - Path to the source VMX file to clone. If
|
||||
`remote_type` is enabled then this specifies a path on the `remote_host`.
|
||||
<%= partial "partials/builder/virtualbox/ovf/Config-required" %>
|
||||
|
||||
- `nopenopnopnopnponpo` (array of strings) - This is here so that the
|
||||
previous item is correctly set.
|
||||
#### Optional:
|
||||
|
||||
### Optional:
|
||||
<%= partial "partials/builder/virtualbox/ovf/Config-not-required" %>
|
||||
<%= partial "partials/builder/virtualbox/common/VBoxVersionConfig-not-required" %>
|
||||
<%= partial "partials/builder/virtualbox/common/GuestAdditionsConfig-not-required" %>
|
||||
|
||||
- `boot_command` (array of strings) - This is an array of commands to type
|
||||
when the virtual machine is first booted. The goal of these commands should
|
||||
be to type just enough to initialize the operating system installer. Special
|
||||
keys can be typed as well, and are covered in the section below on the
|
||||
boot command. If this is not specified, it is assumed the installer will
|
||||
start itself.
|
||||
### Http directory configuration
|
||||
|
||||
- `boot_wait` (string) - The time to wait after booting the initial virtual
|
||||
machine before typing the `boot_command`. The value of this should be
|
||||
a duration. Examples are `5s` and `1m30s` which will cause Packer to wait
|
||||
five seconds and one minute 30 seconds, respectively. If this isn't
|
||||
specified, the default is `10s` or 10 seconds.
|
||||
<%= partial "partials/common/HTTPConfig" %>
|
||||
#### Optional:
|
||||
|
||||
- `disable_vnc` (boolean) - Whether to create a VNC connection or not.
|
||||
A `boot_command` cannot be used when this is `false`. Defaults to `false`.
|
||||
<%= partial "partials/common/HTTPConfig-not-required" %>
|
||||
|
||||
- `display_name` (string) - The name that will appear in your vSphere client,
|
||||
and will be used for the vmx basename. This will override the "displayname"
|
||||
value in your vmx file. It will also override the "displayname" if you have
|
||||
set it in the "vmx_data" Packer option. This option is useful if you are
|
||||
chaining vmx builds and want to make sure that the display name of each step
|
||||
in the chain is unique: the vmware-vmx builder will use the displayname of
|
||||
the VM being cloned from if it is not explicitly specified via the vmx_data
|
||||
section or the displayname property.
|
||||
### Floppy configuration
|
||||
|
||||
- `floppy_dirs` (array of strings) - A list of directories to place onto
|
||||
the floppy disk recursively. This is similar to the `floppy_files` option
|
||||
except that the directory structure is preserved. This is useful for when
|
||||
your floppy disk includes drivers or if you just want to organize it's
|
||||
contents as a hierarchy. Wildcard characters (\*, ?, and \[\]) are allowed.
|
||||
<%= partial "partials/common/FloppyConfig" %>
|
||||
|
||||
- `floppy_files` (array of strings) - A list of files to place onto a floppy
|
||||
disk that is attached when the VM is booted. This is most useful for
|
||||
unattended Windows installs, which look for an `Autounattend.xml` file on
|
||||
removable media. By default, no floppy will be attached. All files listed in
|
||||
this setting get placed into the root directory of the floppy and the floppy
|
||||
is attached as the first floppy device. Currently, no support exists for
|
||||
creating sub-directories on the floppy. Wildcard characters (\*, ?,
|
||||
and \[\]) are allowed. Directory names are also allowed, which will add all
|
||||
the files found in the directory to the floppy.
|
||||
#### Optional:
|
||||
|
||||
- `fusion_app_path` (string) - Path to "VMware Fusion.app". By default this is
|
||||
`/Applications/VMware Fusion.app` but this setting allows you to
|
||||
customize this.
|
||||
<%= partial "partials/common/FloppyConfig-not-required" %>
|
||||
|
||||
- `headless` (boolean) - Packer defaults to building VMware virtual machines
|
||||
by launching a GUI that shows the console of the machine being built. When
|
||||
this value is set to `true`, the machine will start without a console. For
|
||||
VMware machines, Packer will output VNC connection information in case you
|
||||
need to connect to the console to debug the build process.
|
||||
### Export configuration
|
||||
|
||||
- `http_directory` (string) - Path to a directory to serve using an
|
||||
HTTP server. The files in this directory will be available over HTTP that
|
||||
will be requestable from the virtual machine. This is useful for hosting
|
||||
kickstart files and so on. By default this is an empty string, which means
|
||||
no HTTP server will be started. The address and port of the HTTP server will
|
||||
be available as variables in `boot_command`. This is covered in more detail
|
||||
below.
|
||||
#### Optional:
|
||||
|
||||
- `http_port_min` and `http_port_max` (number) - These are the minimum and
|
||||
maximum port to use for the HTTP server started to serve the
|
||||
`http_directory`. Because Packer often runs in parallel, Packer will choose
|
||||
a randomly available port in this range to run the HTTP server. If you want
|
||||
to force the HTTP server to be on one port, make this minimum and maximum
|
||||
port the same. By default the values are `8000` and `9000`, respectively.
|
||||
<%= partial "partials/builder/virtualbox/common/ExportConfig-not-required" %>
|
||||
|
||||
- `output_directory` (string) - This is the path to the directory where the
|
||||
resulting virtual machine will be created. This may be relative or absolute.
|
||||
If relative, the path is relative to the working directory when `packer`
|
||||
is executed. This directory must not exist or be empty prior to running
|
||||
the builder. By default this is `output-BUILDNAME` where "BUILDNAME" is the
|
||||
name of the build.
|
||||
### Output configuration
|
||||
|
||||
- `skip_validate_credentials` (boolean) - When Packer is preparing to run a
|
||||
remote esxi build, and export is not disable, by default it runs a no-op
|
||||
ovftool command to make sure that the remote_username and remote_password
|
||||
given are valid. If you set this flag to `true`, Packer will skip this
|
||||
validation. Default: `false`.
|
||||
#### Optional:
|
||||
|
||||
- `remote_cache_datastore` (string) - The path to the datastore where
|
||||
supporting files will be stored during the build on the remote machine. By
|
||||
default this is the same as the `remote_datastore` option. This only has an
|
||||
effect if `remote_type` is enabled.
|
||||
<%= partial "partials/builder/virtualbox/common/OutputConfig-not-required" %>
|
||||
|
||||
- `remote_cache_directory` (string) - The path where the ISO and/or floppy
|
||||
files will be stored during the build on the remote machine. The path is
|
||||
relative to the `remote_cache_datastore` on the remote machine. By default
|
||||
this is "packer\_cache". This only has an effect if `remote_type`
|
||||
is enabled.
|
||||
### Run configuration
|
||||
|
||||
- `remote_datastore` (string) - The path to the datastore where the resulting
|
||||
VM will be stored when it is built on the remote machine. By default this
|
||||
is "datastore1". This only has an effect if `remote_type` is enabled.
|
||||
#### Optional:
|
||||
|
||||
- `remote_host` (string) - The host of the remote machine used for access.
|
||||
This is only required if `remote_type` is enabled.
|
||||
<%= partial "partials/builder/virtualbox/common/RunConfig-not-required" %>
|
||||
|
||||
- `remote_password` (string) - The SSH password for the user used to access
|
||||
the remote machine. By default this is empty. This only has an effect if
|
||||
`remote_type` is enabled.
|
||||
### Driver configuration
|
||||
|
||||
- `remote_private_key_file` (string) - The path to the PEM encoded private key
|
||||
file for the user used to access the remote machine. By default this is empty.
|
||||
This only has an effect if `remote_type` is enabled.
|
||||
#### Optional:
|
||||
|
||||
- `remote_type` (string) - The type of remote machine that will be used to
|
||||
build this VM rather than a local desktop product. The only value accepted
|
||||
for this currently is "esx5". If this is not set, a desktop product will
|
||||
be used. By default, this is not set.
|
||||
<%= partial "partials/builder/vmware/common/DriverConfig-not-required" %>
|
||||
|
||||
- `remote_username` (string) - The username for the SSH user that will access
|
||||
the remote machine. This is required if `remote_type` is enabled.
|
||||
### Tools configuration
|
||||
|
||||
- `shutdown_command` (string) - The command to use to gracefully shut down the
|
||||
machine once all the provisioning is done. By default this is an empty
|
||||
string, which tells Packer to just forcefully shut down the machine unless a
|
||||
shutdown command takes place inside script so this may safely be omitted. If
|
||||
one or more scripts require a reboot it is suggested to leave this blank
|
||||
since reboots may fail and specify the final shutdown command in your
|
||||
last script.
|
||||
#### Optional:
|
||||
|
||||
- `shutdown_timeout` (string) - The amount of time to wait after executing the
|
||||
`shutdown_command` for the virtual machine to actually shut down. If it
|
||||
doesn't shut down in this time, it is an error. By default, the timeout is
|
||||
`5m` or five minutes.
|
||||
<%= partial "partials/builder/vmware/common/ToolsConfig-not-required" %>
|
||||
|
||||
- `linked` (boolean) - By default Packer creates a 'full' clone of
|
||||
the virtual machine specified in `source_path`. The resultant virtual
|
||||
machine is fully independant from the parent it was cloned from.
|
||||
### VMX configuration
|
||||
|
||||
Setting `linked` to `true` instead causes Packer to create the virtual
|
||||
machine as a 'linked' clone. Linked clones use and require ongoing
|
||||
access to the disks of the parent virtual machine. The benefit of a
|
||||
linked clone is that the clones virtual disk is typically very much
|
||||
smaller than would be the case for a full clone. Additionally, the
|
||||
cloned virtual machine can also be created much faster. Creating a
|
||||
linked clone will typically only be of benefit in some advanced build
|
||||
scenarios. Most users will wish to create a full clone instead.
|
||||
Defaults to `false`.
|
||||
#### Optional:
|
||||
|
||||
- `skip_compaction` (boolean) - VMware-created disks are defragmented and
|
||||
compacted at the end of the build process using `vmware-vdiskmanager`. In
|
||||
certain rare cases, this might actually end up making the resulting disks
|
||||
slightly larger. If you find this to be the case, you can disable compaction
|
||||
using this configuration value. Defaults to `false`.
|
||||
<%= partial "partials/builder/vmware/common/VMXConfig-not-required" %>
|
||||
|
||||
- `skip_export` (boolean) - Defaults to `false`. When enabled, Packer will
|
||||
not export the VM. Useful if the build output is not the resultant image,
|
||||
but created inside the VM.
|
||||
### Shutdown configuration
|
||||
|
||||
- `keep_registered` (boolean) - Set this to `true` if you would like to keep
|
||||
the VM registered with the remote ESXi server. This is convenient if you
|
||||
use packer to provision VMs on ESXi and don't want to use ovftool to
|
||||
deploy the resulting artifact (VMX or OVA or whatever you used as `format`).
|
||||
Defaults to `false`.
|
||||
#### Optional:
|
||||
|
||||
- `ovftool_options` (array of strings) - Extra options to pass to ovftool
|
||||
during export. Each item in the array is a new argument. The options
|
||||
`--noSSLVerify`, `--skipManifestCheck`, and `--targetType` are reserved,
|
||||
and should not be passed to this argument.
|
||||
<%= partial "partials/builder/virtualbox/common/ShutdownConfig-not-required" %>
|
||||
|
||||
- `format` (string) - Either "ovf", "ova" or "vmx", this specifies the output
|
||||
format of the exported virtual machine. This defaults to "ovf".
|
||||
Before using this option, you need to install `ovftool`.
|
||||
### Communicator configuration
|
||||
|
||||
- `tools_upload_flavor` (string) - The flavor of the VMware Tools ISO to
|
||||
upload into the VM. Valid values are `darwin`, `linux`, and `windows`. By
|
||||
default, this is empty, which means VMware tools won't be uploaded.
|
||||
#### Optional common fields:
|
||||
|
||||
- `tools_upload_path` (string) - The path in the VM to upload the
|
||||
VMware tools. This only takes effect if `tools_upload_flavor` is non-empty.
|
||||
This is a [configuration
|
||||
template](/docs/templates/engine.html) that has a single
|
||||
valid variable: `Flavor`, which will be the value of `tools_upload_flavor`.
|
||||
By default the upload path is set to `{{.Flavor}}.iso`.
|
||||
<%= partial "partials/helper/communicator/Config-not-required" %>
|
||||
|
||||
- `vm_name` (string) - This is the name of the VMX file for the new virtual
|
||||
machine, without the file extension. By default this is `packer-BUILDNAME`,
|
||||
where "BUILDNAME" is the name of the build.
|
||||
#### Optional SSH fields:
|
||||
|
||||
- `vmx_data` (object of key/value strings) - Arbitrary key/values to enter
|
||||
into the virtual machine VMX file. This is for advanced users who want to
|
||||
set properties such as memory, CPU, etc.
|
||||
<%= partial "partials/helper/communicator/SSH-not-required" %>
|
||||
<%= partial "partials/builder/virtualbox/common/SSHConfig-not-required" %>
|
||||
|
||||
- `vmx_data_post` (object of key/value strings) - Identical to `vmx_data`,
|
||||
except that it is run after the virtual machine is shutdown, and before the
|
||||
virtual machine is exported.
|
||||
#### Optional WinRM fields:
|
||||
|
||||
- `vmx_remove_ethernet_interfaces` (boolean) - Remove all ethernet interfaces
|
||||
from the VMX file after building. This is for advanced users who understand
|
||||
the ramifications, but is useful for building Vagrant boxes since Vagrant
|
||||
will create ethernet interfaces when provisioning a box. Defaults to
|
||||
`false`.
|
||||
|
||||
- `vnc_bind_address` (string / IP address) - The IP address that should be
|
||||
binded to for VNC. By default packer will use `127.0.0.1` for this. If you
|
||||
wish to bind to all interfaces use `0.0.0.0`.
|
||||
|
||||
- `vnc_port_min` and `vnc_port_max` (number) - The minimum and maximum port
|
||||
to use for VNC access to the virtual machine. The builder uses VNC to type
|
||||
the initial `boot_command`. Because Packer generally runs in parallel,
|
||||
Packer uses a randomly chosen port in this range that appears available. By
|
||||
default this is `5900` to `6000`. The minimum and maximum ports are
|
||||
inclusive.
|
||||
<%= partial "partials/helper/communicator/WinRM-not-required" %>
|
||||
|
||||
## Boot Command
|
||||
|
||||
|
|
|
@ -7,23 +7,21 @@
|
|||
Since ovftool is only capable of password based authentication
|
||||
remote_password must be set when exporting the VM.
|
||||
|
||||
- `ovftool_options` ([]string) - Extra options to pass to ovftool
|
||||
during export. Each item in the array is a new argument. The options
|
||||
--noSSLVerify, --skipManifestCheck, and --targetType are reserved,
|
||||
and should not be passed to this argument.
|
||||
Currently, exporting the build VM (with ovftool) is only supported when
|
||||
building on ESXi e.g. when remote_type is set to esx5. See the
|
||||
Building on a Remote vSphere
|
||||
Hypervisor
|
||||
- `ovftool_options` ([]string) - Extra options to pass to ovftool during export. Each item in the array
|
||||
is a new argument. The options `--noSSLVerify`, `--skipManifestCheck`,
|
||||
and `--targetType` are reserved, and should not be passed to this
|
||||
argument. Currently, exporting the build VM (with ovftool) is only
|
||||
supported when building on ESXi e.g. when `remote_type` is set to
|
||||
`esx5`. See the [Building on a Remote vSphere
|
||||
Hypervisor](/docs/builders/vmware-iso.html#building-on-a-remote-vsphere-hypervisor)
|
||||
section below for more info.
|
||||
|
||||
- `skip_export` (bool) - Defaults to false. When enabled, Packer will
|
||||
not export the VM. Useful if the build output is not the resultant
|
||||
image, but created inside the VM.
|
||||
Currently, exporting the build VM is only supported when building on
|
||||
ESXi e.g. when remote_type is set to esx5. See the Building on a
|
||||
- `skip_export` (bool) - Defaults to `false`. When enabled, Packer will not export the VM. Useful
|
||||
if the build output is not the resultant image, but created inside the
|
||||
VM. Currently, exporting the build VM is only supported when building on
|
||||
ESXi e.g. when `remote_type` is set to `esx5`. See the [Building on a
|
||||
Remote vSphere
|
||||
Hypervisor
|
||||
Hypervisor](/docs/builders/vmware-iso.html#building-on-a-remote-vsphere-hypervisor)
|
||||
section below for more info.
|
||||
|
||||
- `keep_registered` (bool) - Set this to true if you would like to keep
|
||||
|
|
|
@ -13,11 +13,11 @@
|
|||
such as hostonly, nat, or bridged. If the network is not one of these
|
||||
values, then it is assumed to be a VMware network device. (VMnet0..x)
|
||||
|
||||
- `network_adapter_type` (string) - This is the ethernet adapter type the the
|
||||
virtual machine will be created with. By default the e1000 network adapter
|
||||
type will be used by Packer. For more information, please consult the
|
||||
|
||||
Choosing a network adapter for your virtual machine for desktop VMware
|
||||
- `network_adapter_type` (string) - This is the ethernet adapter type the the virtual machine will be
|
||||
created with. By default the `e1000` network adapter type will be used
|
||||
by Packer. For more information, please consult [Choosing a network
|
||||
adapter for your virtual
|
||||
machine](https://kb.vmware.com/s/article/1001805) for desktop VMware
|
||||
clients. For ESXi, refer to the proper ESXi documentation.
|
||||
|
||||
- `sound` (bool) - Specify whether to enable VMware's virtual soundcard
|
||||
|
@ -29,10 +29,51 @@
|
|||
the usb_xhci.present property.
|
||||
|
||||
- `serial` (string) - This specifies a serial port to add to the VM.
|
||||
It has a format of Type:option1,option2,.... The field Type can be one
|
||||
of the following values: FILE, DEVICE, PIPE, AUTO, or NONE.
|
||||
It has a format of `Type:option1,option2,...`. The field `Type` can be one
|
||||
of the following values: `FILE`, `DEVICE`, `PIPE`, `AUTO`, or `NONE`.
|
||||
|
||||
* `FILE:path(,yield)` - Specifies the path to the local file to be used as the
|
||||
serial port.
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
* `DEVICE:path(,yield)` - Specifies the path to the local device to be used
|
||||
as the serial port. If `path` is empty, then
|
||||
default to the first serial port.
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
* `PIPE:path,endpoint,host(,yield)` - Specifies to use the named-pipe "path"
|
||||
as a serial port. This has a few
|
||||
options that determine how the VM
|
||||
should use the named-pipe.
|
||||
* `endpoint` (string) - Chooses the type of the VM-end, which can be
|
||||
either a `client` or `server`.
|
||||
* `host` (str`ing) - Chooses the type of the host-end, which can be either
|
||||
an `app` (application) or `vm` (another virtual-machine).
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
|
||||
* `AUTO:(yield)` - Specifies to use auto-detection to determine the serial
|
||||
port to use. This has one option to determine how the VM
|
||||
should support the serial port.
|
||||
* `yield` (bool) - This is an optional boolean that specifies whether
|
||||
the vm should yield the cpu when polling the port.
|
||||
By default, the builder will assume this as `FALSE`.
|
||||
* `NONE` - Specifies to not use a serial port. (default)
|
||||
|
||||
- `parallel` (string) - This specifies a parallel port to add to the VM. It
|
||||
has the format of Type:option1,option2,.... Type can be one of the
|
||||
following values: FILE, DEVICE, AUTO, or NONE.
|
||||
has the format of `Type:option1,option2,...`. Type can be one of the
|
||||
following values: `FILE`, `DEVICE`, `AUTO`, or `NONE`.
|
||||
|
||||
* `FILE:path` - Specifies the path to the local file to be used for the
|
||||
parallel port.
|
||||
* `DEVICE:path` - Specifies the path to the local device to be used for the
|
||||
parallel port.
|
||||
* `AUTO:direction` - Specifies to use auto-detection to determine the
|
||||
parallel port. Direction can be `BI` to specify
|
||||
bidirectional communication or `UNI` to specify
|
||||
unidirectional communication.
|
||||
* `NONE` - Specifies to not use a parallel port. (default)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<!-- Code generated from the comments of the SSHConfig struct in builder/vmware/common/ssh_config.go; DO NOT EDIT MANUALLY -->
|
||||
|
||||
- `ssh_skip_request_pty` (bool) - These are deprecated, but we keep them around for BC
|
||||
TODO(@mitchellh): remove
|
||||
|
||||
- `ssh_wait_timeout` (time.Duration) - These are deprecated, but we keep them around for BC
|
||||
TODO(@mitchellh): remove
|
||||
|
|
@ -4,11 +4,10 @@
|
|||
upload into the VM. Valid values are darwin, linux, and windows. By
|
||||
default, this is empty, which means VMware tools won't be uploaded.
|
||||
|
||||
- `tools_upload_path` (string) - The path in the VM to upload the
|
||||
VMware tools. This only takes effect if tools_upload_flavor is non-empty.
|
||||
This is a configuration
|
||||
template that has a single
|
||||
valid variable: Flavor, which will be the value of tools_upload_flavor.
|
||||
By default the upload path is set to {{.Flavor}}.iso. This setting is not
|
||||
used when remote_type is esx5.
|
||||
- `tools_upload_path` (string) - The path in the VM to upload the VMware tools. This only takes effect if
|
||||
`tools_upload_flavor` is non-empty. This is a [configuration
|
||||
template](/docs/templates/engine.html) that has a single valid variable:
|
||||
`Flavor`, which will be the value of `tools_upload_flavor`. By default
|
||||
the upload path is set to `{{.Flavor}}.iso`. This setting is not used
|
||||
when `remote_type` is `esx5`.
|
||||
|
|
@ -6,15 +6,15 @@
|
|||
fixed-size virtual hard disks, so the actual file representing the disk will
|
||||
not use the full size unless it is full.
|
||||
|
||||
- `disk_adapter_type` (string) - The adapter type of the VMware virtual disk
|
||||
to create. This option is for advanced usage, modify only if you know what
|
||||
you're doing. Some of the options you can specify are ide, sata, nvme
|
||||
or scsi (which uses the "lsilogic" scsi interface by default). If you
|
||||
specify another option, Packer will assume that you're specifying a scsi
|
||||
interface of that specified type. For more information, please consult the
|
||||
|
||||
Virtual Disk Manager User's Guide for desktop VMware clients.
|
||||
For ESXi, refer to the proper ESXi documentation.
|
||||
- `disk_adapter_type` (string) - The adapter type of the VMware virtual disk to create. This option is
|
||||
for advanced usage, modify only if you know what you're doing. Some of
|
||||
the options you can specify are `ide`, `sata`, `nvme` or `scsi` (which
|
||||
uses the "lsilogic" scsi interface by default). If you specify another
|
||||
option, Packer will assume that you're specifying a `scsi` interface of
|
||||
that specified type. For more information, please consult [Virtual Disk
|
||||
Manager User's Guide](http://www.vmware.com/pdf/VirtualDiskManager.pdf)
|
||||
for desktop VMware clients. For ESXi, refer to the proper ESXi
|
||||
documentation.
|
||||
|
||||
- `vmdk_name` (string) - The filename of the virtual disk that'll be created,
|
||||
without the extension. This defaults to packer.
|
||||
|
@ -27,6 +27,28 @@
|
|||
- `disk_type_id` (string) - The type of VMware virtual disk to create. This
|
||||
option is for advanced usage.
|
||||
|
||||
For desktop VMware clients:
|
||||
|
||||
Type ID | Description
|
||||
------- | ---
|
||||
`0` | Growable virtual disk contained in a single file (monolithic sparse).
|
||||
`1` | Growable virtual disk split into 2GB files (split sparse).
|
||||
`2` | Preallocated virtual disk contained in a single file (monolithic flat).
|
||||
`3` | Preallocated virtual disk split into 2GB files (split flat).
|
||||
`4` | Preallocated virtual disk compatible with ESX server (VMFS flat).
|
||||
`5` | Compressed disk optimized for streaming.
|
||||
|
||||
The default is `1`.
|
||||
|
||||
For ESXi, this defaults to `zeroedthick`. The available options for ESXi
|
||||
are: `zeroedthick`, `eagerzeroedthick`, `thin`. `rdm:dev`, `rdmp:dev`,
|
||||
`2gbsparse` are not supported. Due to default disk compaction, when using
|
||||
`zeroedthick` or `eagerzeroedthick` set `skip_compaction` to `true`.
|
||||
|
||||
For more information, please consult the [Virtual Disk Manager User's
|
||||
Guide](https://www.vmware.com/pdf/VirtualDiskManager.pdf) for desktop
|
||||
VMware clients. For ESXi, refer to the proper ESXi documentation.
|
||||
|
||||
- `format` (string) - Either "ovf", "ova" or "vmx", this specifies the output
|
||||
format of the exported virtual machine. This defaults to "ovf".
|
||||
Before using this option, you need to install ovftool. This option
|
||||
|
@ -46,20 +68,19 @@
|
|||
changes to better support the operating system running in the
|
||||
virtual machine.
|
||||
|
||||
- `version` (string) - The vmx hardware
|
||||
version
|
||||
- `version` (string) - The [vmx hardware
|
||||
version](http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003746)
|
||||
for the new virtual machine. Only the default value has been tested, any
|
||||
other value is experimental. Default value is 9.
|
||||
other value is experimental. Default value is `9`.
|
||||
|
||||
- `vm_name` (string) - This is the name of the VMX file for the new virtual
|
||||
machine, without the file extension. By default this is packer-BUILDNAME,
|
||||
where "BUILDNAME" is the name of the build.
|
||||
|
||||
- `vmx_disk_template_path` (string) - VMX Disk Template Path
|
||||
- `vmx_template_path` (string) - Path to a configuration
|
||||
template that defines the
|
||||
contents of the virtual machine VMX file for VMware. This is for advanced
|
||||
users only as this can render the virtual machine non-functional. See
|
||||
below for more information. For basic VMX modifications, try
|
||||
vmx_data first.
|
||||
- `vmx_template_path` (string) - Path to a [configuration template](/docs/templates/engine.html) that
|
||||
defines the contents of the virtual machine VMX file for VMware. This is
|
||||
for **advanced users only** as this can render the virtual machine
|
||||
non-functional. See below for more information. For basic VMX
|
||||
modifications, try `vmx_data` first.
|
||||
|
Loading…
Reference in New Issue