clone

package
v1.2.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2024 License: MPL-2.0 Imports: 19 Imported by: 1

Documentation

Index

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

func (*Builder) Prepare

func (b *Builder) Prepare(raws ...interface{}) ([]string, []string, error)

func (*Builder) Run

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

func (*Config) FlatMapstructure() interface{ HCL2Spec() map[string]hcldec.Spec }

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.

func (*Config) Prepare

func (c *Config) Prepare(raws ...interface{}) ([]string, error)

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.

func (*FlatCloneConfig) HCL2Spec

func (*FlatCloneConfig) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a CloneConfig. This spec is used by HCL to read the fields of CloneConfig. The decoded values from this spec will then be applied to a FlatCloneConfig.

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.

func (*FlatConfig) HCL2Spec

func (*FlatConfig) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a Config. This spec is used by HCL to read the fields of Config. The decoded values from this spec will then be applied to a FlatConfig.

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.

func (*FlatCustomizeConfig) HCL2Spec

func (*FlatCustomizeConfig) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a CustomizeConfig. This spec is used by HCL to read the fields of CustomizeConfig. The decoded values from this spec will then be applied to a FlatCustomizeConfig.

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.

func (*FlatLinuxOptions) HCL2Spec

func (*FlatLinuxOptions) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a LinuxOptions. This spec is used by HCL to read the fields of LinuxOptions. The decoded values from this spec will then be applied to a FlatLinuxOptions.

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.

func (*FlatvAppConfig) HCL2Spec

func (*FlatvAppConfig) HCL2Spec() map[string]hcldec.Spec

HCL2Spec returns the hcl spec of a vAppConfig. This spec is used by HCL to read the fields of vAppConfig. The decoded values from this spec will then be applied to a FlatvAppConfig.

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

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

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL