Documentation
¶
Index ¶
- type Builder
- type CloneConfig
- type Config
- type CustomizeConfig
- type FlatCloneConfig
- type FlatConfig
- type FlatCustomizeConfig
- type FlatGlobalDnsSettings
- type FlatGlobalRoutingSettings
- type FlatLinuxOptions
- type FlatNetworkInterface
- type FlatWindowsOptions
- type FlatvAppConfig
- type GlobalDnsSettings
- type GlobalRoutingSettings
- type LinuxOptions
- type NetworkInterface
- type NetworkInterfaces
- type StepCloneVM
- type StepCustomize
- type WindowsOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
func (*Builder) ConfigSpec ¶
func (b *Builder) ConfigSpec() hcldec.ObjectSpec
type CloneConfig ¶
type CloneConfig struct {
// The name of the source virtual machine to clone.
Template string `mapstructure:"template"`
// The size of the primary disk in MiB. Cannot be used with `linked_clone`.
// -> **Note:** Only the primary disk size can be specified. Additional
// disks are not supported.
DiskSize int64 `mapstructure:"disk_size"`
// Create the virtual machine as a linked clone from the latest snapshot.
// Defaults to `false`. Cannot be used with `disk_size`.`
LinkedClone bool `mapstructure:"linked_clone"`
// The network to which the virtual machine will connect.
//
// For example:
//
// - Name: `<NetworkName>`
// - Inventory Path: `/<DatacenterName>/<FolderName>/<NetworkName>`
// - Managed Object ID (Port Group): `Network:network-<xxxxx>`
// - Managed Object ID (Distributed Port Group): `DistributedVirtualPortgroup::dvportgroup-<xxxxx>`
// - Logical Switch UUID: `<uuid>`
// - Segment ID: `/infra/segments/<SegmentID>`
//
// ~> **Note:** If more than one network resolves to the same name, either
// the inventory path to network or an ID must be provided.
//
// ~> **Note:** If no network is specified, provide `host` to allow the
// plugin to search for an available network.
Network string `mapstructure:"network"`
// The network card MAC address. For example `00:50:56:00:00:00`.
// If set, the `network` must be also specified.
MacAddress string `mapstructure:"mac_address"`
// The annotations for the virtual machine.
Notes string `mapstructure:"notes"`
// Destroy the virtual machine after the build is complete.
// Defaults to `false`.
Destroy bool `mapstructure:"destroy"`
// The vApp Options for the virtual machine. For more information, refer to
// the [vApp Options Configuration](/packer/plugins/builders/vmware/vsphere-clone#vapp-options-configuration)
// section.
VAppConfig vAppConfig `mapstructure:"vapp"`
StorageConfig common.StorageConfig `mapstructure:",squash"`
}
func (*CloneConfig) FlatMapstructure ¶
func (*CloneConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatCloneConfig. FlatCloneConfig is an auto-generated flat version of CloneConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*CloneConfig) Prepare ¶
func (c *CloneConfig) Prepare() []error
type Config ¶
type Config struct {
packerCommon.PackerConfig `mapstructure:",squash"`
commonsteps.HTTPConfig `mapstructure:",squash"`
commonsteps.CDConfig `mapstructure:",squash"`
common.ConnectConfig `mapstructure:",squash"`
CloneConfig `mapstructure:",squash"`
common.LocationConfig `mapstructure:",squash"`
common.HardwareConfig `mapstructure:",squash"`
common.ConfigParamsConfig `mapstructure:",squash"`
common.FlagConfig `mapstructure:",squash"`
common.CDRomConfig `mapstructure:",squash"`
common.RemoveCDRomConfig `mapstructure:",squash"`
common.ReattachCDRomConfig `mapstructure:",squash"`
common.RemoveNetworkAdapterConfig `mapstructure:",squash"`
common.FloppyConfig `mapstructure:",squash"`
common.RunConfig `mapstructure:",squash"`
common.BootConfig `mapstructure:",squash"`
common.WaitIpConfig `mapstructure:",squash"`
Comm communicator.Config `mapstructure:",squash"`
common.ShutdownConfig `mapstructure:",squash"`
// Create a snapshot of the virtual machine to use as a base for linked
// clones. Defaults to `false`.
CreateSnapshot bool `mapstructure:"create_snapshot"`
// The name of the snapshot when `create_snapshot` is `true`.
// Defaults to `Created By Packer`.
SnapshotName string `mapstructure:"snapshot_name"`
// Convert the cloned virtual machine to a template after the build is
// complete. Defaults to `false`.
// If set to `true`, the virtual machine can not be imported to a content
// library.
ConvertToTemplate bool `mapstructure:"convert_to_template"`
// The configuration for exporting the virtual machine to an OVF.
// The virtual machine is not exported if [export configuration](#export-configuration)
// is not specified.
Export *common.ExportConfig `mapstructure:"export"`
// The configuration for importing a VM template or OVF template to a
// content library. The template will not be imported if no
// [content library import configuration](#content-library-import-configuration)
// is specified. If set, `convert_to_template` must be set to `false`.
ContentLibraryDestinationConfig *common.ContentLibraryDestinationConfig `mapstructure:"content_library_destination"`
// The customization options for the virtual machine.
// Refer to the [customization options](#customization) section for more
// information.
CustomizeConfig *CustomizeConfig `mapstructure:"customize"`
// contains filtered or unexported fields
}
func (*Config) FlatMapstructure ¶
FlatMapstructure returns a new FlatConfig. FlatConfig is an auto-generated flat version of Config. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
type CustomizeConfig ¶
type CustomizeConfig struct {
// Settings for the guest customization of Linux operating systems.
// Refer to the [Linux options](#linux-options) section for additional
// details.
LinuxOptions *LinuxOptions `mapstructure:"linux_options"`
// Settings for the guest customization of Windows operating systems.
// Refer to the [Windows options](#windows-options) section for additional
// details.
WindowsOptions *WindowsOptions `mapstructure:"windows_options"`
// Provide a `sysprep.xml` file to allow control of the customization
// process independent of vSphere. This option is deprecated, please use
// `windows_sysprep_text`.
WindowsSysPrepFile string `mapstructure:"windows_sysprep_file"`
// Provide the text for the `sysprep.xml` content to allow control of the
// customization process independent of vSphere.
//
// HCL Examples:
//
// “`hcl
// customize {
// windows_sysprep_text = file("<path-to-sysprep.xml>")
// }
// “`
//
// “`hcl
// customize {
// windows_sysprep_text = templatefile("<path-to-sysprep.xml>", {
// var1="example"
// var2="example-2"
// })
// }
// “`
//
// JSON Examples
//
// “`json
// {
// "customize": {
// "windows_sysprep_text": "<path-to-sysprep.xml>"
// }
// }
// “`
//
// “`json
// {
// "customize": {
// "windows_sysprep_text": "<path-to-sysprep.xml>",
// "var1": "example",
// "var2": "example-2"
// }
// }
WindowsSysPrepText string `mapstructure:"windows_sysprep_text"`
// Set up network interfaces individually to correspond with the network
// adapters on the virtual machine. To use DHCP, specify an empty
// `network_interface` for each configured adapter. This field is mandatory.
// Refer to the [network interface](#network-interface-settings) section for
// additional details.
NetworkInterfaces NetworkInterfaces `mapstructure:"network_interface"`
GlobalRoutingSettings `mapstructure:",squash"`
GlobalDnsSettings `mapstructure:",squash"`
}
A cloned virtual machine can be [customized](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-58E346FF-83AE-42B8-BE58-253641D257BC.html) to configure host, network, or licensing settings.
To perform virtual machine customization as a part of the clone process, specify the customize block with the respective customization options. Windows guests are customized using Sysprep, which will result in the machine SID being reset. Before using customization, check that your source virtual machine meets the [requirements](https://docs.vmware.com/en/VMware-vSphere/8.0/vsphere-vm-administration/GUID-E63B6FAA-8D35-428D-B40C-744769845906.html) for guest OS customization on vSphere. Refer to the [customization example](#customization-example) for a usage synopsis.
The settings for guest customization include:
func (*CustomizeConfig) FlatMapstructure ¶
func (*CustomizeConfig) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatCustomizeConfig. FlatCustomizeConfig is an auto-generated flat version of CustomizeConfig. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
func (*CustomizeConfig) Prepare ¶
func (c *CustomizeConfig) Prepare() ([]string, []error)
type FlatCloneConfig ¶
type FlatCloneConfig struct {
Template *string `mapstructure:"template" cty:"template" hcl:"template"`
DiskSize *int64 `mapstructure:"disk_size" cty:"disk_size" hcl:"disk_size"`
LinkedClone *bool `mapstructure:"linked_clone" cty:"linked_clone" hcl:"linked_clone"`
Network *string `mapstructure:"network" cty:"network" hcl:"network"`
MacAddress *string `mapstructure:"mac_address" cty:"mac_address" hcl:"mac_address"`
Notes *string `mapstructure:"notes" cty:"notes" hcl:"notes"`
Destroy *bool `mapstructure:"destroy" cty:"destroy" hcl:"destroy"`
VAppConfig *FlatvAppConfig `mapstructure:"vapp" cty:"vapp" hcl:"vapp"`
DiskControllerType []string `mapstructure:"disk_controller_type" cty:"disk_controller_type" hcl:"disk_controller_type"`
Storage []common.FlatDiskConfig `mapstructure:"storage" cty:"storage" hcl:"storage"`
}
FlatCloneConfig is an auto-generated flat version of CloneConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type FlatConfig ¶
type FlatConfig struct {
PackerBuildName *string `mapstructure:"packer_build_name" cty:"packer_build_name" hcl:"packer_build_name"`
PackerBuilderType *string `mapstructure:"packer_builder_type" cty:"packer_builder_type" hcl:"packer_builder_type"`
PackerCoreVersion *string `mapstructure:"packer_core_version" cty:"packer_core_version" hcl:"packer_core_version"`
PackerDebug *bool `mapstructure:"packer_debug" cty:"packer_debug" hcl:"packer_debug"`
PackerForce *bool `mapstructure:"packer_force" cty:"packer_force" hcl:"packer_force"`
PackerOnError *string `mapstructure:"packer_on_error" cty:"packer_on_error" hcl:"packer_on_error"`
PackerUserVars map[string]string `mapstructure:"packer_user_variables" cty:"packer_user_variables" hcl:"packer_user_variables"`
PackerSensitiveVars []string `mapstructure:"packer_sensitive_variables" cty:"packer_sensitive_variables" hcl:"packer_sensitive_variables"`
HTTPDir *string `mapstructure:"http_directory" cty:"http_directory" hcl:"http_directory"`
HTTPContent map[string]string `mapstructure:"http_content" cty:"http_content" hcl:"http_content"`
HTTPPortMin *int `mapstructure:"http_port_min" cty:"http_port_min" hcl:"http_port_min"`
HTTPPortMax *int `mapstructure:"http_port_max" cty:"http_port_max" hcl:"http_port_max"`
HTTPAddress *string `mapstructure:"http_bind_address" cty:"http_bind_address" hcl:"http_bind_address"`
HTTPInterface *string `mapstructure:"http_interface" undocumented:"true" cty:"http_interface" hcl:"http_interface"`
CDFiles []string `mapstructure:"cd_files" cty:"cd_files" hcl:"cd_files"`
CDContent map[string]string `mapstructure:"cd_content" cty:"cd_content" hcl:"cd_content"`
CDLabel *string `mapstructure:"cd_label" cty:"cd_label" hcl:"cd_label"`
VCenterServer *string `mapstructure:"vcenter_server" cty:"vcenter_server" hcl:"vcenter_server"`
Username *string `mapstructure:"username" cty:"username" hcl:"username"`
Password *string `mapstructure:"password" cty:"password" hcl:"password"`
InsecureConnection *bool `mapstructure:"insecure_connection" cty:"insecure_connection" hcl:"insecure_connection"`
Datacenter *string `mapstructure:"datacenter" cty:"datacenter" hcl:"datacenter"`
Template *string `mapstructure:"template" cty:"template" hcl:"template"`
DiskSize *int64 `mapstructure:"disk_size" cty:"disk_size" hcl:"disk_size"`
LinkedClone *bool `mapstructure:"linked_clone" cty:"linked_clone" hcl:"linked_clone"`
Network *string `mapstructure:"network" cty:"network" hcl:"network"`
MacAddress *string `mapstructure:"mac_address" cty:"mac_address" hcl:"mac_address"`
Notes *string `mapstructure:"notes" cty:"notes" hcl:"notes"`
Destroy *bool `mapstructure:"destroy" cty:"destroy" hcl:"destroy"`
VAppConfig *FlatvAppConfig `mapstructure:"vapp" cty:"vapp" hcl:"vapp"`
DiskControllerType []string `mapstructure:"disk_controller_type" cty:"disk_controller_type" hcl:"disk_controller_type"`
Storage []common.FlatDiskConfig `mapstructure:"storage" cty:"storage" hcl:"storage"`
VMName *string `mapstructure:"vm_name" cty:"vm_name" hcl:"vm_name"`
Folder *string `mapstructure:"folder" cty:"folder" hcl:"folder"`
Cluster *string `mapstructure:"cluster" cty:"cluster" hcl:"cluster"`
Host *string `mapstructure:"host" cty:"host" hcl:"host"`
ResourcePool *string `mapstructure:"resource_pool" cty:"resource_pool" hcl:"resource_pool"`
Datastore *string `mapstructure:"datastore" cty:"datastore" hcl:"datastore"`
SetHostForDatastoreUploads *bool `mapstructure:"set_host_for_datastore_uploads" cty:"set_host_for_datastore_uploads" hcl:"set_host_for_datastore_uploads"`
CPUs *int32 `mapstructure:"CPUs" cty:"CPUs" hcl:"CPUs"`
CpuCores *int32 `mapstructure:"cpu_cores" cty:"cpu_cores" hcl:"cpu_cores"`
CPUReservation *int64 `mapstructure:"CPU_reservation" cty:"CPU_reservation" hcl:"CPU_reservation"`
CPULimit *int64 `mapstructure:"CPU_limit" cty:"CPU_limit" hcl:"CPU_limit"`
CpuHotAddEnabled *bool `mapstructure:"CPU_hot_plug" cty:"CPU_hot_plug" hcl:"CPU_hot_plug"`
RAM *int64 `mapstructure:"RAM" cty:"RAM" hcl:"RAM"`
RAMReservation *int64 `mapstructure:"RAM_reservation" cty:"RAM_reservation" hcl:"RAM_reservation"`
RAMReserveAll *bool `mapstructure:"RAM_reserve_all" cty:"RAM_reserve_all" hcl:"RAM_reserve_all"`
MemoryHotAddEnabled *bool `mapstructure:"RAM_hot_plug" cty:"RAM_hot_plug" hcl:"RAM_hot_plug"`
VideoRAM *int64 `mapstructure:"video_ram" cty:"video_ram" hcl:"video_ram"`
Displays *int32 `mapstructure:"displays" cty:"displays" hcl:"displays"`
AllowedDevices []common.FlatPCIPassthroughAllowedDevice `mapstructure:"pci_passthrough_allowed_device" cty:"pci_passthrough_allowed_device" hcl:"pci_passthrough_allowed_device"`
VGPUProfile *string `mapstructure:"vgpu_profile" cty:"vgpu_profile" hcl:"vgpu_profile"`
NestedHV *bool `mapstructure:"NestedHV" cty:"NestedHV" hcl:"NestedHV"`
Firmware *string `mapstructure:"firmware" cty:"firmware" hcl:"firmware"`
ForceBIOSSetup *bool `mapstructure:"force_bios_setup" cty:"force_bios_setup" hcl:"force_bios_setup"`
VTPMEnabled *bool `mapstructure:"vTPM" cty:"vTPM" hcl:"vTPM"`
VirtualPrecisionClock *string `mapstructure:"precision_clock" cty:"precision_clock" hcl:"precision_clock"`
ConfigParams map[string]string `mapstructure:"configuration_parameters" cty:"configuration_parameters" hcl:"configuration_parameters"`
ToolsSyncTime *bool `mapstructure:"tools_sync_time" cty:"tools_sync_time" hcl:"tools_sync_time"`
ToolsUpgradePolicy *bool `mapstructure:"tools_upgrade_policy" cty:"tools_upgrade_policy" hcl:"tools_upgrade_policy"`
VbsEnabled *bool `mapstructure:"vbs_enabled" cty:"vbs_enabled" hcl:"vbs_enabled"`
VvtdEnabled *bool `mapstructure:"vvtd_enabled" cty:"vvtd_enabled" hcl:"vvtd_enabled"`
CdromType *string `mapstructure:"cdrom_type" cty:"cdrom_type" hcl:"cdrom_type"`
ISOPaths []string `mapstructure:"iso_paths" cty:"iso_paths" hcl:"iso_paths"`
RemoveCdrom *bool `mapstructure:"remove_cdrom" cty:"remove_cdrom" hcl:"remove_cdrom"`
ReattachCDRom *int `mapstructure:"reattach_cdroms" cty:"reattach_cdroms" hcl:"reattach_cdroms"`
RemoveNetworkAdapter *bool `mapstructure:"remove_network_adapter" cty:"remove_network_adapter" hcl:"remove_network_adapter"`
FloppyIMGPath *string `mapstructure:"floppy_img_path" cty:"floppy_img_path" hcl:"floppy_img_path"`
FloppyFiles []string `mapstructure:"floppy_files" cty:"floppy_files" hcl:"floppy_files"`
FloppyDirectories []string `mapstructure:"floppy_dirs" cty:"floppy_dirs" hcl:"floppy_dirs"`
FloppyContent map[string]string `mapstructure:"floppy_content" cty:"floppy_content" hcl:"floppy_content"`
FloppyLabel *string `mapstructure:"floppy_label" cty:"floppy_label" hcl:"floppy_label"`
BootOrder *string `mapstructure:"boot_order" cty:"boot_order" hcl:"boot_order"`
BootGroupInterval *string `mapstructure:"boot_keygroup_interval" cty:"boot_keygroup_interval" hcl:"boot_keygroup_interval"`
BootWait *string `mapstructure:"boot_wait" cty:"boot_wait" hcl:"boot_wait"`
BootCommand []string `mapstructure:"boot_command" cty:"boot_command" hcl:"boot_command"`
HTTPIP *string `mapstructure:"http_ip" cty:"http_ip" hcl:"http_ip"`
WaitTimeout *string `mapstructure:"ip_wait_timeout" cty:"ip_wait_timeout" hcl:"ip_wait_timeout"`
SettleTimeout *string `mapstructure:"ip_settle_timeout" cty:"ip_settle_timeout" hcl:"ip_settle_timeout"`
WaitAddress *string `mapstructure:"ip_wait_address" cty:"ip_wait_address" hcl:"ip_wait_address"`
Type *string `mapstructure:"communicator" cty:"communicator" hcl:"communicator"`
PauseBeforeConnect *string `mapstructure:"pause_before_connecting" cty:"pause_before_connecting" hcl:"pause_before_connecting"`
SSHHost *string `mapstructure:"ssh_host" cty:"ssh_host" hcl:"ssh_host"`
SSHPort *int `mapstructure:"ssh_port" cty:"ssh_port" hcl:"ssh_port"`
SSHUsername *string `mapstructure:"ssh_username" cty:"ssh_username" hcl:"ssh_username"`
SSHPassword *string `mapstructure:"ssh_password" cty:"ssh_password" hcl:"ssh_password"`
SSHKeyPairName *string `mapstructure:"ssh_keypair_name" undocumented:"true" cty:"ssh_keypair_name" hcl:"ssh_keypair_name"`
SSHTemporaryKeyPairName *string `mapstructure:"temporary_key_pair_name" undocumented:"true" cty:"temporary_key_pair_name" hcl:"temporary_key_pair_name"`
SSHTemporaryKeyPairType *string `mapstructure:"temporary_key_pair_type" cty:"temporary_key_pair_type" hcl:"temporary_key_pair_type"`
SSHTemporaryKeyPairBits *int `mapstructure:"temporary_key_pair_bits" cty:"temporary_key_pair_bits" hcl:"temporary_key_pair_bits"`
SSHCiphers []string `mapstructure:"ssh_ciphers" cty:"ssh_ciphers" hcl:"ssh_ciphers"`
SSHClearAuthorizedKeys *bool `mapstructure:"ssh_clear_authorized_keys" cty:"ssh_clear_authorized_keys" hcl:"ssh_clear_authorized_keys"`
SSHKEXAlgos []string `mapstructure:"ssh_key_exchange_algorithms" cty:"ssh_key_exchange_algorithms" hcl:"ssh_key_exchange_algorithms"`
SSHPrivateKeyFile *string `mapstructure:"ssh_private_key_file" undocumented:"true" cty:"ssh_private_key_file" hcl:"ssh_private_key_file"`
SSHCertificateFile *string `mapstructure:"ssh_certificate_file" cty:"ssh_certificate_file" hcl:"ssh_certificate_file"`
SSHPty *bool `mapstructure:"ssh_pty" cty:"ssh_pty" hcl:"ssh_pty"`
SSHTimeout *string `mapstructure:"ssh_timeout" cty:"ssh_timeout" hcl:"ssh_timeout"`
SSHWaitTimeout *string `mapstructure:"ssh_wait_timeout" undocumented:"true" cty:"ssh_wait_timeout" hcl:"ssh_wait_timeout"`
SSHAgentAuth *bool `mapstructure:"ssh_agent_auth" undocumented:"true" cty:"ssh_agent_auth" hcl:"ssh_agent_auth"`
SSHDisableAgentForwarding *bool `mapstructure:"ssh_disable_agent_forwarding" cty:"ssh_disable_agent_forwarding" hcl:"ssh_disable_agent_forwarding"`
SSHHandshakeAttempts *int `mapstructure:"ssh_handshake_attempts" cty:"ssh_handshake_attempts" hcl:"ssh_handshake_attempts"`
SSHBastionHost *string `mapstructure:"ssh_bastion_host" cty:"ssh_bastion_host" hcl:"ssh_bastion_host"`
SSHBastionPort *int `mapstructure:"ssh_bastion_port" cty:"ssh_bastion_port" hcl:"ssh_bastion_port"`
SSHBastionAgentAuth *bool `mapstructure:"ssh_bastion_agent_auth" cty:"ssh_bastion_agent_auth" hcl:"ssh_bastion_agent_auth"`
SSHBastionUsername *string `mapstructure:"ssh_bastion_username" cty:"ssh_bastion_username" hcl:"ssh_bastion_username"`
SSHBastionPassword *string `mapstructure:"ssh_bastion_password" cty:"ssh_bastion_password" hcl:"ssh_bastion_password"`
SSHBastionInteractive *bool `mapstructure:"ssh_bastion_interactive" cty:"ssh_bastion_interactive" hcl:"ssh_bastion_interactive"`
SSHBastionPrivateKeyFile *string `mapstructure:"ssh_bastion_private_key_file" cty:"ssh_bastion_private_key_file" hcl:"ssh_bastion_private_key_file"`
SSHBastionCertificateFile *string `mapstructure:"ssh_bastion_certificate_file" cty:"ssh_bastion_certificate_file" hcl:"ssh_bastion_certificate_file"`
SSHFileTransferMethod *string `mapstructure:"ssh_file_transfer_method" cty:"ssh_file_transfer_method" hcl:"ssh_file_transfer_method"`
SSHProxyHost *string `mapstructure:"ssh_proxy_host" cty:"ssh_proxy_host" hcl:"ssh_proxy_host"`
SSHProxyPort *int `mapstructure:"ssh_proxy_port" cty:"ssh_proxy_port" hcl:"ssh_proxy_port"`
SSHProxyUsername *string `mapstructure:"ssh_proxy_username" cty:"ssh_proxy_username" hcl:"ssh_proxy_username"`
SSHProxyPassword *string `mapstructure:"ssh_proxy_password" cty:"ssh_proxy_password" hcl:"ssh_proxy_password"`
SSHKeepAliveInterval *string `mapstructure:"ssh_keep_alive_interval" cty:"ssh_keep_alive_interval" hcl:"ssh_keep_alive_interval"`
SSHReadWriteTimeout *string `mapstructure:"ssh_read_write_timeout" cty:"ssh_read_write_timeout" hcl:"ssh_read_write_timeout"`
SSHRemoteTunnels []string `mapstructure:"ssh_remote_tunnels" cty:"ssh_remote_tunnels" hcl:"ssh_remote_tunnels"`
SSHLocalTunnels []string `mapstructure:"ssh_local_tunnels" cty:"ssh_local_tunnels" hcl:"ssh_local_tunnels"`
SSHPublicKey []byte `mapstructure:"ssh_public_key" undocumented:"true" cty:"ssh_public_key" hcl:"ssh_public_key"`
SSHPrivateKey []byte `mapstructure:"ssh_private_key" undocumented:"true" cty:"ssh_private_key" hcl:"ssh_private_key"`
WinRMUser *string `mapstructure:"winrm_username" cty:"winrm_username" hcl:"winrm_username"`
WinRMPassword *string `mapstructure:"winrm_password" cty:"winrm_password" hcl:"winrm_password"`
WinRMHost *string `mapstructure:"winrm_host" cty:"winrm_host" hcl:"winrm_host"`
WinRMNoProxy *bool `mapstructure:"winrm_no_proxy" cty:"winrm_no_proxy" hcl:"winrm_no_proxy"`
WinRMPort *int `mapstructure:"winrm_port" cty:"winrm_port" hcl:"winrm_port"`
WinRMTimeout *string `mapstructure:"winrm_timeout" cty:"winrm_timeout" hcl:"winrm_timeout"`
WinRMUseSSL *bool `mapstructure:"winrm_use_ssl" cty:"winrm_use_ssl" hcl:"winrm_use_ssl"`
WinRMInsecure *bool `mapstructure:"winrm_insecure" cty:"winrm_insecure" hcl:"winrm_insecure"`
WinRMUseNTLM *bool `mapstructure:"winrm_use_ntlm" cty:"winrm_use_ntlm" hcl:"winrm_use_ntlm"`
Command *string `mapstructure:"shutdown_command" cty:"shutdown_command" hcl:"shutdown_command"`
Timeout *string `mapstructure:"shutdown_timeout" cty:"shutdown_timeout" hcl:"shutdown_timeout"`
DisableShutdown *bool `mapstructure:"disable_shutdown" cty:"disable_shutdown" hcl:"disable_shutdown"`
CreateSnapshot *bool `mapstructure:"create_snapshot" cty:"create_snapshot" hcl:"create_snapshot"`
SnapshotName *string `mapstructure:"snapshot_name" cty:"snapshot_name" hcl:"snapshot_name"`
ConvertToTemplate *bool `mapstructure:"convert_to_template" cty:"convert_to_template" hcl:"convert_to_template"`
Export *common.FlatExportConfig `mapstructure:"export" cty:"export" hcl:"export"`
ContentLibraryDestinationConfig *common.FlatContentLibraryDestinationConfig `mapstructure:"content_library_destination" cty:"content_library_destination" hcl:"content_library_destination"`
CustomizeConfig *FlatCustomizeConfig `mapstructure:"customize" cty:"customize" hcl:"customize"`
}
FlatConfig is an auto-generated flat version of Config. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type FlatCustomizeConfig ¶
type FlatCustomizeConfig struct {
LinuxOptions *FlatLinuxOptions `mapstructure:"linux_options" cty:"linux_options" hcl:"linux_options"`
WindowsOptions *FlatWindowsOptions `mapstructure:"windows_options" cty:"windows_options" hcl:"windows_options"`
WindowsSysPrepFile *string `mapstructure:"windows_sysprep_file" cty:"windows_sysprep_file" hcl:"windows_sysprep_file"`
WindowsSysPrepText *string `mapstructure:"windows_sysprep_text" cty:"windows_sysprep_text" hcl:"windows_sysprep_text"`
NetworkInterfaces []FlatNetworkInterface `mapstructure:"network_interface" cty:"network_interface" hcl:"network_interface"`
Ipv4Gateway *string `mapstructure:"ipv4_gateway" cty:"ipv4_gateway" hcl:"ipv4_gateway"`
Ipv6Gateway *string `mapstructure:"ipv6_gateway" cty:"ipv6_gateway" hcl:"ipv6_gateway"`
DnsServerList []string `mapstructure:"dns_server_list" cty:"dns_server_list" hcl:"dns_server_list"`
DnsSuffixList []string `mapstructure:"dns_suffix_list" cty:"dns_suffix_list" hcl:"dns_suffix_list"`
}
FlatCustomizeConfig is an auto-generated flat version of CustomizeConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type FlatGlobalDnsSettings ¶
type FlatGlobalDnsSettings struct {
DnsServerList []string `mapstructure:"dns_server_list" cty:"dns_server_list" hcl:"dns_server_list"`
DnsSuffixList []string `mapstructure:"dns_suffix_list" cty:"dns_suffix_list" hcl:"dns_suffix_list"`
}
FlatGlobalDnsSettings is an auto-generated flat version of GlobalDnsSettings. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatGlobalDnsSettings) HCL2Spec ¶
func (*FlatGlobalDnsSettings) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a GlobalDnsSettings. This spec is used by HCL to read the fields of GlobalDnsSettings. The decoded values from this spec will then be applied to a FlatGlobalDnsSettings.
type FlatGlobalRoutingSettings ¶
type FlatGlobalRoutingSettings struct {
Ipv4Gateway *string `mapstructure:"ipv4_gateway" cty:"ipv4_gateway" hcl:"ipv4_gateway"`
Ipv6Gateway *string `mapstructure:"ipv6_gateway" cty:"ipv6_gateway" hcl:"ipv6_gateway"`
}
FlatGlobalRoutingSettings is an auto-generated flat version of GlobalRoutingSettings. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatGlobalRoutingSettings) HCL2Spec ¶
func (*FlatGlobalRoutingSettings) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a GlobalRoutingSettings. This spec is used by HCL to read the fields of GlobalRoutingSettings. The decoded values from this spec will then be applied to a FlatGlobalRoutingSettings.
type FlatLinuxOptions ¶
type FlatLinuxOptions struct {
Domain *string `mapstructure:"domain" cty:"domain" hcl:"domain"`
Hostname *string `mapstructure:"host_name" cty:"host_name" hcl:"host_name"`
HWClockUTC *bool `mapstructure:"hw_clock_utc" cty:"hw_clock_utc" hcl:"hw_clock_utc"`
Timezone *string `mapstructure:"time_zone" cty:"time_zone" hcl:"time_zone"`
}
FlatLinuxOptions is an auto-generated flat version of LinuxOptions. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type FlatNetworkInterface ¶
type FlatNetworkInterface struct {
DnsServerList []string `mapstructure:"dns_server_list" cty:"dns_server_list" hcl:"dns_server_list"`
DnsDomain *string `mapstructure:"dns_domain" cty:"dns_domain" hcl:"dns_domain"`
Ipv4Address *string `mapstructure:"ipv4_address" cty:"ipv4_address" hcl:"ipv4_address"`
Ipv4NetMask *int `mapstructure:"ipv4_netmask" cty:"ipv4_netmask" hcl:"ipv4_netmask"`
Ipv6Address *string `mapstructure:"ipv6_address" cty:"ipv6_address" hcl:"ipv6_address"`
Ipv6NetMask *int `mapstructure:"ipv6_netmask" cty:"ipv6_netmask" hcl:"ipv6_netmask"`
}
FlatNetworkInterface is an auto-generated flat version of NetworkInterface. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatNetworkInterface) HCL2Spec ¶
func (*FlatNetworkInterface) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a NetworkInterface. This spec is used by HCL to read the fields of NetworkInterface. The decoded values from this spec will then be applied to a FlatNetworkInterface.
type FlatWindowsOptions ¶ added in v1.1.1
type FlatWindowsOptions struct {
RunOnceCommandList []string `mapstructure:"run_once_command_list" cty:"run_once_command_list" hcl:"run_once_command_list"`
AutoLogon *bool `mapstructure:"auto_logon" cty:"auto_logon" hcl:"auto_logon"`
AutoLogonCount *int32 `mapstructure:"auto_logon_count" cty:"auto_logon_count" hcl:"auto_logon_count"`
AdminPassword *string `mapstructure:"admin_password" cty:"admin_password" hcl:"admin_password"`
TimeZone *int32 `mapstructure:"time_zone" cty:"time_zone" hcl:"time_zone"`
Workgroup *string `mapstructure:"workgroup" cty:"workgroup" hcl:"workgroup"`
ComputerName *string `mapstructure:"computer_name" cty:"computer_name" hcl:"computer_name"`
FullName *string `mapstructure:"full_name" cty:"full_name" hcl:"full_name"`
OrganizationName *string `mapstructure:"organization_name" cty:"organization_name" hcl:"organization_name"`
ProductKey *string `mapstructure:"product_key" cty:"product_key" hcl:"product_key"`
}
FlatWindowsOptions is an auto-generated flat version of WindowsOptions. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
func (*FlatWindowsOptions) HCL2Spec ¶ added in v1.1.1
func (*FlatWindowsOptions) HCL2Spec() map[string]hcldec.Spec
HCL2Spec returns the hcl spec of a WindowsOptions. This spec is used by HCL to read the fields of WindowsOptions. The decoded values from this spec will then be applied to a FlatWindowsOptions.
type FlatvAppConfig ¶
type FlatvAppConfig struct {
Properties map[string]string `mapstructure:"properties" cty:"properties" hcl:"properties"`
}
FlatvAppConfig is an auto-generated flat version of vAppConfig. Where the contents of a field with a `mapstructure:,squash` tag are bubbled up.
type GlobalDnsSettings ¶
type GlobalDnsSettings struct {
// A list of DNS servers to configure on the guest operating system.
DnsServerList []string `mapstructure:"dns_server_list"`
// A list of DNS search domains to add to the DNS configuration on the guest
// operating system.
DnsSuffixList []string `mapstructure:"dns_suffix_list"`
}
The following settings configure DNS globally for Linux guest operating systems. For Windows guest operating systems, this is set for each network interface. Refer to the [network interface](#network_interface) section for additional details.
func (*GlobalDnsSettings) FlatMapstructure ¶
func (*GlobalDnsSettings) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatGlobalDnsSettings. FlatGlobalDnsSettings is an auto-generated flat version of GlobalDnsSettings. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
type GlobalRoutingSettings ¶
type GlobalRoutingSettings struct {
// The IPv4 default gateway when using `network_interface` customization.
Ipv4Gateway string `mapstructure:"ipv4_gateway"`
// The IPv6 default gateway when using `network_interface` customization.
Ipv6Gateway string `mapstructure:"ipv6_gateway"`
}
The settings must match the IP address and subnet mask of at least one `network_interface` for the customization.
func (*GlobalRoutingSettings) FlatMapstructure ¶
func (*GlobalRoutingSettings) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatGlobalRoutingSettings. FlatGlobalRoutingSettings is an auto-generated flat version of GlobalRoutingSettings. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
type LinuxOptions ¶
type LinuxOptions struct {
// The domain name for the guest operating system. Used with
// [host_name](#host_name) to construct the fully qualified domain name
// (FQDN).
Domain string `mapstructure:"domain"`
// The hostname for the guest operating system. Used with [domain](#domain)
// to construct the fully qualified domain name (FQDN).
Hostname string `mapstructure:"host_name"`
// Set the hardware clock to Coordinated Universal Time (UTC).
// Defaults to `true`.
HWClockUTC config.Trilean `mapstructure:"hw_clock_utc"`
// The time zone for the guest operating system.
Timezone string `mapstructure:"time_zone"`
}
func (*LinuxOptions) FlatMapstructure ¶
func (*LinuxOptions) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatLinuxOptions. FlatLinuxOptions is an auto-generated flat version of LinuxOptions. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
type NetworkInterface ¶
type NetworkInterface struct {
// The DNS servers for a specific network interface on a Windows guest
// operating system. Ignored on Linux. Refer to the
// [global DNS settings](#global-dns-settings) section for additional
// details.
DnsServerList []string `mapstructure:"dns_server_list"`
// The DNS search domain for a specific network interface on a Windows guest
// operating system. Ignored on Linux. Refer to the
// [global DNS settings](#global-dns-settings) section for additional
// details.
DnsDomain string `mapstructure:"dns_domain"`
// The IPv4 address assigned to the network adapter. If left blank or not
// included, DHCP is used.
Ipv4Address string `mapstructure:"ipv4_address"`
// The IPv4 subnet mask, in bits, for the network adapter. For example, `24`
// for a `/24` subnet.
Ipv4NetMask int `mapstructure:"ipv4_netmask"`
// The IPv6 address assigned to the network adapter. If left blank or not
// included, auto-configuration is used.
Ipv6Address string `mapstructure:"ipv6_address"`
// The IPv6 subnet mask, in bits, for the network adapter. For example, `64`
// for a `/64` subnet.
Ipv6NetMask int `mapstructure:"ipv6_netmask"`
}
func (*NetworkInterface) FlatMapstructure ¶
func (*NetworkInterface) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatNetworkInterface. FlatNetworkInterface is an auto-generated flat version of NetworkInterface. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.
type NetworkInterfaces ¶
type NetworkInterfaces []NetworkInterface
type StepCloneVM ¶
type StepCloneVM struct {
Config *CloneConfig
Location *common.LocationConfig
Force bool
GeneratedData *packerbuilderdata.GeneratedData
}
func (*StepCloneVM) Cleanup ¶
func (s *StepCloneVM) Cleanup(state multistep.StateBag)
func (*StepCloneVM) Run ¶
func (s *StepCloneVM) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type StepCustomize ¶
type StepCustomize struct {
Config *CustomizeConfig
}
func (*StepCustomize) Cleanup ¶
func (s *StepCustomize) Cleanup(_ multistep.StateBag)
func (*StepCustomize) IPSettingsIPV6Address ¶
func (s *StepCustomize) IPSettingsIPV6Address(n int, gwAdd bool) (*types.CustomizationIPSettingsIpV6AddressSpec, bool)
func (*StepCustomize) Run ¶
func (s *StepCustomize) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
type WindowsOptions ¶ added in v1.1.1
type WindowsOptions struct {
// A list of commands to run at first logon after the guest operating system
// is customized.
RunOnceCommandList []string `mapstructure:"run_once_command_list"`
// Automatically log on the `Administrator` account after the guest operating
// system is customized.
AutoLogon *bool `mapstructure:"auto_logon"`
// The number of times the guest operating system should auto-logon the
// `Administrator` account when `auto_logon` is set to `true`.
// Defaults to `1`.
AutoLogonCount *int32 `mapstructure:"auto_logon_count"`
// The password for the guest operating system's `Administrator` account.
AdminPassword *string `mapstructure:"admin_password"`
// The time zone for the guest operating system.
// Defaults to `85` (Pacific Time).
TimeZone *int32 `mapstructure:"time_zone"`
// The workgroup for the guest operating system.
// Joining an Active Directory domain is not supported.
Workgroup string `mapstructure:"workgroup"`
// The hostname for the guest operating system.
ComputerName string `mapstructure:"computer_name"`
// The full name for the guest operating system's `Administrator` account.
// Defaults to `Administrator`.
FullName string `mapstructure:"full_name"`
// The organization name for the guest operating system.
// Defaults to `Built by Packer`.
OrganizationName string `mapstructure:"organization_name"`
// The product key for the guest operating system.
ProductKey string `mapstructure:"product_key"`
}
func (*WindowsOptions) FlatMapstructure ¶ added in v1.1.1
func (*WindowsOptions) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }
FlatMapstructure returns a new FlatWindowsOptions. FlatWindowsOptions is an auto-generated flat version of WindowsOptions. Where the contents a fields with a `mapstructure:,squash` tag are bubbled up.