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 {
// Specifies the name of the source virtual machine to clone.
Template string `mapstructure:"template"`
// Specifies the size of the primary disk in MiB.
// Cannot be used with `linked_clone`.
DiskSize int64 `mapstructure:"disk_size"`
// Specifies that the virtual machine is created as a linked clone from the latest snapshot. Defaults to `false`.
// Cannot be used with `disk_size`.`
LinkedClone bool `mapstructure:"linked_clone"`
// Specifies the network to which the virtual machine will connect. If no network is specified,
// provide 'host' to allow Packer to search for an available network. For networks placed
// within a network folder vCenter Server, provider the object path to the network.
// For example, `network = "/<DatacenterName>/<FolderName>/<NetworkName>"`.
Network string `mapstructure:"network"`
// Specifies 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"`
// Specifies the annotations for the virtual machine.
Notes string `mapstructure:"notes"`
// Specifies whether to destroy the virtual machine after the build is complete.
Destroy bool `mapstructure:"destroy"`
// Specifies 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.FloppyConfig `mapstructure:",squash"`
common.RunConfig `mapstructure:",squash"`
common.BootConfig `mapstructure:",squash"`
common.WaitIpConfig `mapstructure:",squash"`
Comm communicator.Config `mapstructure:",squash"`
common.ShutdownConfig `mapstructure:",squash"`
// Specifies to create a snapshot of the virtual machine to use as a base for linked clones.
// Defaults to `false`.
CreateSnapshot bool `mapstructure:"create_snapshot"`
// Specifies the name of the snapshot when `create_snapshot` is `true`.
// Defaults to `Created By Packer`.
SnapshotName string `mapstructure:"snapshot_name"`
// Specifies to 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"`
// Specifies 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"`
// Specifies 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"`
// Specifies 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. This option is intended to be used with HCL templates.
//
// Example usage:
//
// In HCL2:
//
// “`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"
// })
// }
// “`
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"`
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"`
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 {
// Specifies a list of DNS servers to configure on the guest operating system.
DnsServerList []string `mapstructure:"dns_server_list"`
// Specifies 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 {
// Specifies the IPv4 default gateway when using `network_interface` customization.
Ipv4Gateway string `mapstructure:"ipv4_gateway"`
// Specifies 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 {
// Specifies 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"`
// Specifies the hostname for the guest operating system. Used with [domain](#domain) to construct the fully qualified domain name (FQDN).
Hostname string `mapstructure:"host_name"`
// Specifies whether the hardware clock is set to Coordinated Universal Time (UTC). Defaults to `true`.
HWClockUTC config.Trilean `mapstructure:"hw_clock_utc"`
// Specifies 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 {
// Specifies 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"`
// Specifies 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"`
// Specifies the IPv4 address assigned to the network adapter. If left blank or not included, DHCP is used.
Ipv4Address string `mapstructure:"ipv4_address"`
// Specifies the IPv4 subnet mask, in bits, for the network adapter. For example, `24` for a `/24` subnet.
Ipv4NetMask int `mapstructure:"ipv4_netmask"`
// Specifies the IPv6 address assigned to the network adapter. If left blank or not included, auto-configuration is used.
Ipv6Address string `mapstructure:"ipv6_address"`
// Specifies 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 {
// Specifies a list of commands to run at first logon after the guest operating system is customized.
RunOnceCommandList *[]string `mapstructure:"run_once_command_list"`
// Specifies whether the guest operating system automatically logs on as Administrator.
AutoLogon *bool `mapstructure:"auto_logon"`
// Specifies how many times the guest operating system should auto-logon the Administrator account when `auto_logon` is set to `true`. Default:s to `1`.
AutoLogonCount *int32 `mapstructure:"auto_logon_count"`
// Specifies the password for the guest operating system's Administrator account.
AdminPassword *string `mapstructure:"admin_password"`
// Specifies the time zone for the guest operating system. Default to `85` (Pacific Time).
TimeZone *int32 `mapstructure:"time_zone"`
// Specifies the workgroup for the guest operating system. Joining an Active Directory domain is not supported.
Workgroup string `mapstructure:"workgroup"`
// Specifies the hostname for the guest operating system.
ComputerName string `mapstructure:"computer_name"`
// Specifies the full name for the guest operating system's Administrator account. Defaults to `Administrator`.
FullName string `mapstructure:"full_name"`
// Specifies the organization name for the guest operating system. Defaults to `Built by Packer`.
OrganizationName string `mapstructure:"organization_name"`
// Specifies 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.