diff --git a/builder/vmware/common/export_config.go b/builder/vmware/common/export_config.go
index edd5fa87c..1ae85d759 100644
--- a/builder/vmware/common/export_config.go
+++ b/builder/vmware/common/export_config.go
@@ -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
diff --git a/builder/vmware/common/hw_config.go b/builder/vmware/common/hw_config.go
index bce8e11fb..d02e5baa8 100644
--- a/builder/vmware/common/hw_config.go
+++ b/builder/vmware/common/hw_config.go
@@ -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"`
}
diff --git a/builder/vmware/common/ssh_config.go b/builder/vmware/common/ssh_config.go
index 47cb9b917..8c59cdedc 100644
--- a/builder/vmware/common/ssh_config.go
+++ b/builder/vmware/common/ssh_config.go
@@ -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 {
diff --git a/builder/vmware/common/tools_config.go b/builder/vmware/common/tools_config.go
index b9cb0e1be..4830ff30c 100644
--- a/builder/vmware/common/tools_config.go
+++ b/builder/vmware/common/tools_config.go
@@ -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"`
}
diff --git a/builder/vmware/iso/config.go b/builder/vmware/iso/config.go
index b07720d9b..23b24aa1f 100644
--- a/builder/vmware/iso/config.go
+++ b/builder/vmware/iso/config.go
@@ -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
diff --git a/website/source/docs/builders/vmware-iso.html.md.erb b/website/source/docs/builders/vmware-iso.html.md.erb
index da23b8379..ca46fc324 100644
--- a/website/source/docs/builders/vmware-iso.html.md.erb
+++ b/website/source/docs/builders/vmware-iso.html.md.erb
@@ -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
-
- Virtual Disk Manager User's Guide 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
-
- Choosing a network adapter for your virtual machine 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
-[
- "",
- "/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 -- "
-]
-```
+<%= 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).
diff --git a/website/source/docs/builders/vmware-vmx.html.md.erb b/website/source/docs/builders/vmware-vmx.html.md.erb
index b73d2a0e2..0ff219a87 100644
--- a/website/source/docs/builders/vmware-vmx.html.md.erb
+++ b/website/source/docs/builders/vmware-vmx.html.md.erb
@@ -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
diff --git a/website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md
index 80efaedec..0056fee8a 100644
--- a/website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md
+++ b/website/source/partials/builder/vmware/common/_ExportConfig-not-required.html.md
@@ -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
diff --git a/website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md
index b61851fd3..08f2a0a39 100644
--- a/website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md
+++ b/website/source/partials/builder/vmware/common/_HWConfig-not-required.html.md
@@ -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)
\ No newline at end of file
diff --git a/website/source/partials/builder/vmware/common/_SSHConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_SSHConfig-not-required.html.md
new file mode 100644
index 000000000..a744bbde8
--- /dev/null
+++ b/website/source/partials/builder/vmware/common/_SSHConfig-not-required.html.md
@@ -0,0 +1,8 @@
+
+
+- `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
+
\ No newline at end of file
diff --git a/website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md b/website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md
index aa47a1074..a464f5951 100644
--- a/website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md
+++ b/website/source/partials/builder/vmware/common/_ToolsConfig-not-required.html.md
@@ -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`.
\ No newline at end of file
diff --git a/website/source/partials/builder/vmware/iso/_Config-not-required.html.md b/website/source/partials/builder/vmware/iso/_Config-not-required.html.md
index b6ed80e34..8562b0a4b 100644
--- a/website/source/partials/builder/vmware/iso/_Config-not-required.html.md
+++ b/website/source/partials/builder/vmware/iso/_Config-not-required.html.md
@@ -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.
\ No newline at end of file