clone

package
v1.7.2 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2021 License: MPL-2.0 Imports: 17 Imported by: 0

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 {
	// Name of source VM. Path is optional.
	Template string `mapstructure:"template"`
	// The size of the disk in MB.
	DiskSize int64 `mapstructure:"disk_size"`
	// Create VM as a linked clone from latest snapshot. Defaults to `false`.
	LinkedClone bool `mapstructure:"linked_clone"`
	// Set the network in which the VM will be connected to. If no network is
	// specified, `host` must be specified to allow Packer to look for the
	// available network. If the network is inside a network folder in vCenter,
	// you need to provide the full path to the network.
	Network string `mapstructure:"network"`
	// Sets a custom Mac Address to the network adapter. If set, the [network](#network) must be also specified.
	MacAddress string `mapstructure:"mac_address"`
	// VM notes.
	Notes string `mapstructure:"notes"`
	// Set the vApp Options to a virtual machine.
	// See the [vApp Options Configuration](/docs/builders/vmware/vsphere-clone#vapp-options-configuration)
	// to know the available options and how to use it.
	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.CDRomConfig       `mapstructure:",squash"`
	common.RemoveCDRomConfig `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 when set to `true`, so the VM can be used as a base
	// for linked clones. Defaults to `false`.
	CreateSnapshot bool `mapstructure:"create_snapshot"`
	// Convert VM to a template. Defaults to `false`.
	ConvertToTemplate bool `mapstructure:"convert_to_template"`
	// Configuration for exporting VM to an ovf file.
	// The VM will not be exported if no [Export Configuration](#export-configuration) is specified.
	Export *common.ExportConfig `mapstructure:"export"`
	// 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.
	// The import doesn't work if [convert_to_template](#convert_to_template) is set to true.
	ContentLibraryDestinationConfig *common.ContentLibraryDestinationConfig `mapstructure:"content_library_destination"`
	// Customize the cloned VM to configure host, network, or licensing settings. See the [customization options](#customization).
	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 added in v1.6.2

type CustomizeConfig struct {
	// Settings to Linux guest OS customization. See [Linux customization settings](#linux-customization-settings).
	LinuxOptions *LinuxOptions `mapstructure:"linux_options"`
	// Supply your own sysprep.xml file to allow full control of the customization process out-of-band of vSphere.
	WindowsSysPrepFile string `mapstructure:"windows_sysprep_file"`
	// Configure network interfaces on a per-interface basis that should matched up to the network adapters present in the VM.
	// To use DHCP, declare an empty network_interface for each adapter being configured. This field is required.
	// See [Network interface settings](#network-interface-settings).
	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/7.0/com.vmware.vsphere.vm_admin.doc/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 VM meets the [requirements](https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-E63B6FAA-8D35-428D-B40C-744769845906.html) for guest OS customization on vSphere. See the [customization example](#customization-example) for a usage synopsis.

The settings for customize are as follows:

func (*CustomizeConfig) FlatMapstructure added in v1.6.2

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 added in v1.6.2

func (c *CustomizeConfig) Prepare() []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"`
	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"`
	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"`
	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"`
	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"`
	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"`
	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"`
	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"`
	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"`
	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 added in v1.6.2

type FlatCustomizeConfig struct {
	LinuxOptions       *FlatLinuxOptions      `mapstructure:"linux_options" cty:"linux_options" hcl:"linux_options"`
	WindowsSysPrepFile *string                `mapstructure:"windows_sysprep_file" cty:"windows_sysprep_file" hcl:"windows_sysprep_file"`
	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 added in v1.6.2

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 added in v1.6.2

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 added in v1.6.2

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 added in v1.6.2

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 added in v1.6.2

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 added in v1.6.2

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 added in v1.6.2

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 added in v1.6.2

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 added in v1.6.2

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 FlatvAppConfig added in v1.6.1

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 added in v1.6.1

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 added in v1.6.2

type GlobalDnsSettings struct {
	// The list of DNS servers to configure on a virtual machine.
	DnsServerList []string `mapstructure:"dns_server_list"`
	// A list of DNS search domains to add to the DNS configuration on the virtual machine.
	DnsSuffixList []string `mapstructure:"dns_suffix_list"`
}

The following settings configure DNS globally, generally for Linux systems. For Windows systems, this is done per-interface, see [network interface](#network_interface) settings.

func (*GlobalDnsSettings) FlatMapstructure added in v1.6.2

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 added in v1.6.2

type GlobalRoutingSettings struct {
	// The IPv4 default gateway when using network_interface customization on the virtual machine.
	Ipv4Gateway string `mapstructure:"ipv4_gateway"`
	// The IPv6 default gateway when using network_interface customization on the virtual machine.
	Ipv6Gateway string `mapstructure:"ipv6_gateway"`
}

The settings here must match the IP/mask of at least one network_interface supplied to customization.

func (*GlobalRoutingSettings) FlatMapstructure added in v1.6.2

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 added in v1.6.2

type LinuxOptions struct {
	// The domain name for this machine. This, along with [host_name](#host_name), make up the FQDN of this virtual machine.
	Domain string `mapstructure:"domain"`
	// The host name for this machine. This, along with [domain](#domain), make up the FQDN of this virtual machine.
	Hostname string `mapstructure:"host_name"`
	// Tells the operating system that the hardware clock is set to UTC. Default: true.
	HWClockUTC config.Trilean `mapstructure:"hw_clock_utc"`
	// Sets the time zone. The default is UTC.
	Timezone string `mapstructure:"time_zone"`
}

func (*LinuxOptions) FlatMapstructure added in v1.6.2

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 added in v1.6.2

type NetworkInterface struct {
	// Network interface-specific DNS server settings for Windows operating systems.
	// Ignored on Linux and possibly other operating systems - for those systems, please see the [global DNS settings](#global-dns-settings) section.
	DnsServerList []string `mapstructure:"dns_server_list"`
	// Network interface-specific DNS search domain for Windows operating systems.
	// Ignored on Linux and possibly other operating systems - for those systems, please see the [global DNS settings](#global-dns-settings) section.
	DnsDomain string `mapstructure:"dns_domain"`
	// The IPv4 address assigned to this network adapter. If left blank or not included, DHCP is used.
	Ipv4Address string `mapstructure:"ipv4_address"`
	// The IPv4 subnet mask, in bits (example: 24 for 255.255.255.0).
	Ipv4NetMask int `mapstructure:"ipv4_netmask"`
	// The IPv6 address assigned to this network adapter. If left blank or not included, auto-configuration is used.
	Ipv6Address string `mapstructure:"ipv6_address"`
	// The IPv6 subnet mask, in bits (example: 32).
	Ipv6NetMask int `mapstructure:"ipv6_netmask"`
}

func (*NetworkInterface) FlatMapstructure added in v1.6.2

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 added in v1.6.2

type NetworkInterfaces []NetworkInterface

type StepCloneVM

type StepCloneVM struct {
	Config   *CloneConfig
	Location *common.LocationConfig
	Force    bool
}

func (*StepCloneVM) Cleanup

func (s *StepCloneVM) Cleanup(state multistep.StateBag)

func (*StepCloneVM) Run

type StepCustomize added in v1.6.2

type StepCustomize struct {
	Config *CustomizeConfig
}

func (*StepCustomize) Cleanup added in v1.6.2

func (s *StepCustomize) Cleanup(_ multistep.StateBag)

func (*StepCustomize) IPSettingsIPV6Address added in v1.6.2

func (s *StepCustomize) IPSettingsIPV6Address(n int, gwAdd bool) (*types.CustomizationIPSettingsIpV6AddressSpec, bool)

func (*StepCustomize) Run added in v1.6.2

Jump to

Keyboard shortcuts

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