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 FlatvAppConfig
- type GlobalDnsSettings
- type GlobalRoutingSettings
- type LinuxOptions
- type NetworkInterface
- type NetworkInterfaces
- type StepCloneVM
- type StepCustomize
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 { // 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 ¶
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 ¶ 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.
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.
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.
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.
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 ¶
func (s *StepCloneVM) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction
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
func (s *StepCustomize) Run(_ context.Context, state multistep.StateBag) multistep.StepAction