Documentation ¶
Overview ¶
These functions are compatible with WS 9 and 10 on *NIX
Index ¶
- Constants
- Variables
- func EncodeVMX(contents map[string]string) string
- func NewLocalArtifact(dir string) (packer.Artifact, error)
- func ParseVMX(contents string) map[string]string
- func ReadVMX(path string) (map[string]string, error)
- func SSHAddressFunc(config *SSHConfig) func(multistep.StateBag) (string, error)
- func SSHConfigFunc(config *SSHConfig) func(multistep.StateBag) (*gossh.ClientConfig, error)
- func WriteVMX(path string, data map[string]string) (err error)
- type DHCPLeaseGuestLookup
- type Driver
- type DriverConfig
- type DriverMock
- func (d *DriverMock) Clone(dst string, src string) error
- func (d *DriverMock) CompactDisk(path string) error
- func (d *DriverMock) CreateDisk(output string, size string, typeId string) error
- func (d *DriverMock) DhcpLeasesPath(device string) string
- func (d *DriverMock) IsRunning(path string) (bool, error)
- func (d *DriverMock) SSHAddress(state multistep.StateBag) (string, error)
- func (d *DriverMock) Start(path string, headless bool) error
- func (d *DriverMock) Stop(path string) error
- func (d *DriverMock) SuppressMessages(path string) error
- func (d *DriverMock) ToolsInstall() error
- func (d *DriverMock) ToolsIsoPath(flavor string) string
- func (d *DriverMock) Verify() error
- type Fusion5Driver
- func (d *Fusion5Driver) Clone(dst, src string) error
- func (d *Fusion5Driver) CompactDisk(diskPath string) error
- func (d *Fusion5Driver) CreateDisk(output string, size string, type_id string) error
- func (d *Fusion5Driver) DhcpLeasesPath(device string) string
- func (d *Fusion5Driver) IsRunning(vmxPath string) (bool, error)
- func (d *Fusion5Driver) SSHAddress(state multistep.StateBag) (string, error)
- func (d *Fusion5Driver) Start(vmxPath string, headless bool) error
- func (d *Fusion5Driver) Stop(vmxPath string) error
- func (d *Fusion5Driver) SuppressMessages(vmxPath string) error
- func (d *Fusion5Driver) ToolsInstall() error
- func (d *Fusion5Driver) ToolsIsoPath(k string) string
- func (d *Fusion5Driver) Verify() error
- type Fusion6Driver
- type GuestIPFinder
- type LocalOutputDir
- func (d *LocalOutputDir) DirExists() (bool, error)
- func (d *LocalOutputDir) ListFiles() ([]string, error)
- func (d *LocalOutputDir) MkdirAll() error
- func (d *LocalOutputDir) Remove(path string) error
- func (d *LocalOutputDir) RemoveAll() error
- func (d *LocalOutputDir) SetOutputDir(path string)
- func (d *LocalOutputDir) String() string
- type OutputConfig
- type OutputDir
- type Player5LinuxDriver
- func (d *Player5LinuxDriver) Clone(dst, src string) error
- func (d *Player5LinuxDriver) CompactDisk(diskPath string) error
- func (d *Player5LinuxDriver) CreateDisk(output string, size string, type_id string) error
- func (d *Player5LinuxDriver) DhcpLeasesPath(device string) string
- func (d *Player5LinuxDriver) IsRunning(vmxPath string) (bool, error)
- func (d *Player5LinuxDriver) SSHAddress(state multistep.StateBag) (string, error)
- func (d *Player5LinuxDriver) Start(vmxPath string, headless bool) error
- func (d *Player5LinuxDriver) Stop(vmxPath string) error
- func (d *Player5LinuxDriver) SuppressMessages(vmxPath string) error
- func (d *Player5LinuxDriver) ToolsInstall() error
- func (d *Player5LinuxDriver) ToolsIsoPath(flavor string) string
- func (d *Player5LinuxDriver) Verify() error
- type RunConfig
- type SSHConfig
- type ShutdownConfig
- type StepCleanFiles
- type StepCleanVMX
- type StepCompactDisk
- type StepConfigureVMX
- type StepOutputDir
- type StepPrepareTools
- type StepRun
- type StepShutdown
- type StepSuppressMessages
- type StepUploadTools
- type ToolsConfig
- type VMXConfig
- type Workstation10Driver
- type Workstation9Driver
- func (d *Workstation9Driver) Clone(dst, src string) error
- func (d *Workstation9Driver) CompactDisk(diskPath string) error
- func (d *Workstation9Driver) CreateDisk(output string, size string, type_id string) error
- func (d *Workstation9Driver) DhcpLeasesPath(device string) string
- func (d *Workstation9Driver) IsRunning(vmxPath string) (bool, error)
- func (d *Workstation9Driver) SSHAddress(state multistep.StateBag) (string, error)
- func (d *Workstation9Driver) Start(vmxPath string, headless bool) error
- func (d *Workstation9Driver) Stop(vmxPath string) error
- func (d *Workstation9Driver) SuppressMessages(vmxPath string) error
- func (d *Workstation9Driver) ToolsInstall() error
- func (d *Workstation9Driver) ToolsIsoPath(flavor string) string
- func (d *Workstation9Driver) Verify() error
- func (d *Workstation9Driver) VmnetnatConfPath() string
Constants ¶
const BuilderId = "mitchellh.vmware"
BuilderId for the local artifacts
const VMWARE_WS_VERSION = "10"
Variables ¶
var KeepFileExtensions = []string{".nvram", ".vmdk", ".vmsd", ".vmx", ".vmxf"}
These are the extensions of files that are important for the function of a VMware virtual machine. Any other file is discarded as part of the build.
Functions ¶
func NewLocalArtifact ¶
NewLocalArtifact returns a VMware artifact containing the files in the given directory.
func SSHAddressFunc ¶
func SSHConfigFunc ¶
Types ¶
type DHCPLeaseGuestLookup ¶
type DHCPLeaseGuestLookup struct { // Driver that is being used (to find leases path) Driver Driver // Device that the guest is connected to. Device string // MAC address of the guest. MACAddress string }
DHCPLeaseGuestLookup looks up the IP address of a guest using DHCP lease information from the VMware network devices.
func (*DHCPLeaseGuestLookup) GuestIP ¶
func (f *DHCPLeaseGuestLookup) GuestIP() (string, error)
type Driver ¶
type Driver interface { // Clone clones the VMX and the disk to the destination path. The // destination is a path to the VMX file. The disk will be copied // to that same directory. Clone(dst string, src string) error // CompactDisk compacts a virtual disk. CompactDisk(string) error // CreateDisk creates a virtual disk with the given size. CreateDisk(string, string, string) error // Checks if the VMX file at the given path is running. IsRunning(string) (bool, error) // SSHAddress returns the SSH address for the VM that is being // managed by this driver. SSHAddress(multistep.StateBag) (string, error) // Start starts a VM specified by the path to the VMX given. Start(string, bool) error // Stop stops a VM specified by the path to the VMX given. Stop(string) error // SuppressMessages modifies the VMX or surrounding directory so that // VMware doesn't show any annoying messages. SuppressMessages(string) error // Get the path to the VMware ISO for the given flavor. ToolsIsoPath(string) string // Attach the VMware tools ISO ToolsInstall() error // Get the path to the DHCP leases file for the given device. DhcpLeasesPath(string) string // Verify checks to make sure that this driver should function // properly. This should check that all the files it will use // appear to exist and so on. If everything is okay, this doesn't // return an error. Otherwise, this returns an error. Verify() error }
A driver is able to talk to VMware, control virtual machines, etc.
type DriverConfig ¶
type DriverConfig struct {
FusionAppPath string `mapstructure:"fusion_app_path"`
}
func (*DriverConfig) Prepare ¶
func (c *DriverConfig) Prepare(t *packer.ConfigTemplate) []error
type DriverMock ¶
type DriverMock struct { sync.Mutex CloneCalled bool CloneDst string CloneSrc string CloneErr error CompactDiskCalled bool CompactDiskPath string CompactDiskErr error CreateDiskCalled bool CreateDiskOutput string CreateDiskSize string CreateDiskTypeId string CreateDiskErr error IsRunningCalled bool IsRunningPath string IsRunningResult bool IsRunningErr error SSHAddressCalled bool SSHAddressState multistep.StateBag SSHAddressResult string SSHAddressErr error StartCalled bool StartPath string StartHeadless bool StartErr error StopCalled bool StopPath string StopErr error SuppressMessagesCalled bool SuppressMessagesPath string SuppressMessagesErr error ToolsIsoPathCalled bool ToolsIsoPathFlavor string ToolsIsoPathResult string ToolsInstallCalled bool ToolsInstallErr error DhcpLeasesPathCalled bool DhcpLeasesPathDevice string DhcpLeasesPathResult string VerifyCalled bool VerifyErr error }
func (*DriverMock) CompactDisk ¶
func (d *DriverMock) CompactDisk(path string) error
func (*DriverMock) CreateDisk ¶
func (d *DriverMock) CreateDisk(output string, size string, typeId string) error
func (*DriverMock) DhcpLeasesPath ¶
func (d *DriverMock) DhcpLeasesPath(device string) string
func (*DriverMock) SSHAddress ¶
func (d *DriverMock) SSHAddress(state multistep.StateBag) (string, error)
func (*DriverMock) Stop ¶
func (d *DriverMock) Stop(path string) error
func (*DriverMock) SuppressMessages ¶
func (d *DriverMock) SuppressMessages(path string) error
func (*DriverMock) ToolsInstall ¶ added in v0.6.0
func (d *DriverMock) ToolsInstall() error
func (*DriverMock) ToolsIsoPath ¶
func (d *DriverMock) ToolsIsoPath(flavor string) string
func (*DriverMock) Verify ¶
func (d *DriverMock) Verify() error
type Fusion5Driver ¶
type Fusion5Driver struct { // This is the path to the "VMware Fusion.app" AppPath string // SSHConfig are the SSH settings for the Fusion VM SSHConfig *SSHConfig }
Fusion5Driver is a driver that can run VMWare Fusion 5.
func (*Fusion5Driver) Clone ¶
func (d *Fusion5Driver) Clone(dst, src string) error
func (*Fusion5Driver) CompactDisk ¶
func (d *Fusion5Driver) CompactDisk(diskPath string) error
func (*Fusion5Driver) CreateDisk ¶
func (d *Fusion5Driver) CreateDisk(output string, size string, type_id string) error
func (*Fusion5Driver) DhcpLeasesPath ¶
func (d *Fusion5Driver) DhcpLeasesPath(device string) string
func (*Fusion5Driver) SSHAddress ¶
func (d *Fusion5Driver) SSHAddress(state multistep.StateBag) (string, error)
func (*Fusion5Driver) Stop ¶
func (d *Fusion5Driver) Stop(vmxPath string) error
func (*Fusion5Driver) SuppressMessages ¶
func (d *Fusion5Driver) SuppressMessages(vmxPath string) error
func (*Fusion5Driver) ToolsInstall ¶ added in v0.6.0
func (d *Fusion5Driver) ToolsInstall() error
func (*Fusion5Driver) ToolsIsoPath ¶
func (d *Fusion5Driver) ToolsIsoPath(k string) string
func (*Fusion5Driver) Verify ¶
func (d *Fusion5Driver) Verify() error
type Fusion6Driver ¶
type Fusion6Driver struct {
Fusion5Driver
}
Fusion6Driver is a driver that can run VMWare Fusion 5.
func (*Fusion6Driver) Clone ¶
func (d *Fusion6Driver) Clone(dst, src string) error
func (*Fusion6Driver) Verify ¶
func (d *Fusion6Driver) Verify() error
type GuestIPFinder ¶
Interface to help find the IP address of a running virtual machine.
type LocalOutputDir ¶
type LocalOutputDir struct {
// contains filtered or unexported fields
}
LocalOutputDir is an OutputDir implementation where the directory is on the local machine.
func (*LocalOutputDir) DirExists ¶
func (d *LocalOutputDir) DirExists() (bool, error)
func (*LocalOutputDir) ListFiles ¶
func (d *LocalOutputDir) ListFiles() ([]string, error)
func (*LocalOutputDir) MkdirAll ¶
func (d *LocalOutputDir) MkdirAll() error
func (*LocalOutputDir) Remove ¶
func (d *LocalOutputDir) Remove(path string) error
func (*LocalOutputDir) RemoveAll ¶
func (d *LocalOutputDir) RemoveAll() error
func (*LocalOutputDir) SetOutputDir ¶
func (d *LocalOutputDir) SetOutputDir(path string)
func (*LocalOutputDir) String ¶
func (d *LocalOutputDir) String() string
type OutputConfig ¶
type OutputConfig struct {
OutputDir string `mapstructure:"output_directory"`
}
func (*OutputConfig) Prepare ¶
func (c *OutputConfig) Prepare(t *packer.ConfigTemplate, pc *common.PackerConfig) []error
type OutputDir ¶
type OutputDir interface { DirExists() (bool, error) ListFiles() ([]string, error) MkdirAll() error Remove(string) error RemoveAll() error SetOutputDir(string) String() string }
OutputDir is an interface type that abstracts the creation and handling of the output directory for VMware-based products. The abstraction is made so that the output directory can be properly made on remote (ESXi) based VMware products as well as local.
type Player5LinuxDriver ¶
type Player5LinuxDriver struct { AppPath string VdiskManagerPath string QemuImgPath string VmrunPath string // SSHConfig are the SSH settings for the Fusion VM SSHConfig *SSHConfig }
Player5LinuxDriver is a driver that can run VMware Player 5 on Linux.
func (*Player5LinuxDriver) Clone ¶
func (d *Player5LinuxDriver) Clone(dst, src string) error
func (*Player5LinuxDriver) CompactDisk ¶
func (d *Player5LinuxDriver) CompactDisk(diskPath string) error
func (*Player5LinuxDriver) CreateDisk ¶
func (d *Player5LinuxDriver) CreateDisk(output string, size string, type_id string) error
func (*Player5LinuxDriver) DhcpLeasesPath ¶
func (d *Player5LinuxDriver) DhcpLeasesPath(device string) string
func (*Player5LinuxDriver) IsRunning ¶
func (d *Player5LinuxDriver) IsRunning(vmxPath string) (bool, error)
func (*Player5LinuxDriver) SSHAddress ¶
func (d *Player5LinuxDriver) SSHAddress(state multistep.StateBag) (string, error)
func (*Player5LinuxDriver) Start ¶
func (d *Player5LinuxDriver) Start(vmxPath string, headless bool) error
func (*Player5LinuxDriver) Stop ¶
func (d *Player5LinuxDriver) Stop(vmxPath string) error
func (*Player5LinuxDriver) SuppressMessages ¶
func (d *Player5LinuxDriver) SuppressMessages(vmxPath string) error
func (*Player5LinuxDriver) ToolsInstall ¶ added in v0.6.0
func (d *Player5LinuxDriver) ToolsInstall() error
func (*Player5LinuxDriver) ToolsIsoPath ¶
func (d *Player5LinuxDriver) ToolsIsoPath(flavor string) string
func (*Player5LinuxDriver) Verify ¶
func (d *Player5LinuxDriver) Verify() error
type RunConfig ¶
type SSHConfig ¶
type SSHConfig struct { SSHUser string `mapstructure:"ssh_username"` SSHKeyPath string `mapstructure:"ssh_key_path"` SSHPassword string `mapstructure:"ssh_password"` SSHHost string `mapstructure:"ssh_host"` SSHPort uint `mapstructure:"ssh_port"` SSHSkipRequestPty bool `mapstructure:"ssh_skip_request_pty"` RawSSHWaitTimeout string `mapstructure:"ssh_wait_timeout"` SSHWaitTimeout time.Duration }
type ShutdownConfig ¶
type ShutdownConfig struct { ShutdownCommand string `mapstructure:"shutdown_command"` RawShutdownTimeout string `mapstructure:"shutdown_timeout"` ShutdownTimeout time.Duration `` }
func (*ShutdownConfig) Prepare ¶
func (c *ShutdownConfig) Prepare(t *packer.ConfigTemplate) []error
type StepCleanFiles ¶
type StepCleanFiles struct{}
This step removes unnecessary files from the final result.
Uses:
dir OutputDir ui packer.Ui
Produces:
<nothing>
func (StepCleanFiles) Cleanup ¶
func (StepCleanFiles) Cleanup(multistep.StateBag)
func (StepCleanFiles) Run ¶
func (StepCleanFiles) Run(state multistep.StateBag) multistep.StepAction
type StepCleanVMX ¶
type StepCleanVMX struct{}
This step cleans up the VMX by removing or changing this prior to being ready for use.
Uses:
ui packer.Ui vmx_path string
Produces:
<nothing>
func (StepCleanVMX) Cleanup ¶
func (StepCleanVMX) Cleanup(multistep.StateBag)
func (StepCleanVMX) Run ¶
func (s StepCleanVMX) Run(state multistep.StateBag) multistep.StepAction
type StepCompactDisk ¶
type StepCompactDisk struct {
Skip bool
}
This step compacts the virtual disk for the VM unless the "skip_compaction" boolean is true.
Uses:
driver Driver full_disk_path string ui packer.Ui
Produces:
<nothing>
func (StepCompactDisk) Cleanup ¶
func (StepCompactDisk) Cleanup(multistep.StateBag)
func (StepCompactDisk) Run ¶
func (s StepCompactDisk) Run(state multistep.StateBag) multistep.StepAction
type StepConfigureVMX ¶
This step configures a VMX by setting some default settings as well as taking in custom data to set, attaching a floppy if it exists, etc.
Uses:
vmx_path string
func (*StepConfigureVMX) Cleanup ¶
func (s *StepConfigureVMX) Cleanup(state multistep.StateBag)
func (*StepConfigureVMX) Run ¶
func (s *StepConfigureVMX) Run(state multistep.StateBag) multistep.StepAction
type StepOutputDir ¶
type StepOutputDir struct { Force bool // contains filtered or unexported fields }
StepOutputDir sets up the output directory by creating it if it does not exist, deleting it if it does exist and we're forcing, and cleaning it up when we're done with it.
func (*StepOutputDir) Cleanup ¶
func (s *StepOutputDir) Cleanup(state multistep.StateBag)
func (*StepOutputDir) Run ¶
func (s *StepOutputDir) Run(state multistep.StateBag) multistep.StepAction
type StepPrepareTools ¶ added in v0.6.1
func (*StepPrepareTools) Cleanup ¶ added in v0.6.1
func (c *StepPrepareTools) Cleanup(multistep.StateBag)
func (*StepPrepareTools) Run ¶ added in v0.6.1
func (c *StepPrepareTools) Run(state multistep.StateBag) multistep.StepAction
type StepRun ¶
type StepRun struct { BootWait time.Duration DurationBeforeStop time.Duration Headless bool // contains filtered or unexported fields }
This step runs the created virtual machine.
Uses:
driver Driver ui packer.Ui vmx_path string
Produces:
<nothing>
type StepShutdown ¶
type StepShutdown struct { Command string Timeout time.Duration // Set this to true if we're testing Testing bool }
This step shuts down the machine. It first attempts to do so gracefully, but ultimately forcefully shuts it down if that fails.
Uses:
communicator packer.Communicator dir OutputDir driver Driver ui packer.Ui vmx_path string
Produces:
<nothing>
func (*StepShutdown) Cleanup ¶
func (s *StepShutdown) Cleanup(state multistep.StateBag)
func (*StepShutdown) Run ¶
func (s *StepShutdown) Run(state multistep.StateBag) multistep.StepAction
type StepSuppressMessages ¶
type StepSuppressMessages struct{}
This step suppresses any messages that VMware product might show.
func (*StepSuppressMessages) Cleanup ¶
func (s *StepSuppressMessages) Cleanup(state multistep.StateBag)
func (*StepSuppressMessages) Run ¶
func (s *StepSuppressMessages) Run(state multistep.StateBag) multistep.StepAction
type StepUploadTools ¶ added in v0.6.1
type StepUploadTools struct { RemoteType string ToolsUploadFlavor string ToolsUploadPath string Tpl *packer.ConfigTemplate }
func (*StepUploadTools) Cleanup ¶ added in v0.6.1
func (c *StepUploadTools) Cleanup(multistep.StateBag)
func (*StepUploadTools) Run ¶ added in v0.6.1
func (c *StepUploadTools) Run(state multistep.StateBag) multistep.StepAction
type ToolsConfig ¶ added in v0.6.1
type ToolsConfig struct { ToolsUploadFlavor string `mapstructure:"tools_upload_flavor"` ToolsUploadPath string `mapstructure:"tools_upload_path"` }
func (*ToolsConfig) Prepare ¶ added in v0.6.1
func (c *ToolsConfig) Prepare(t *packer.ConfigTemplate) []error
type VMXConfig ¶
type Workstation10Driver ¶ added in v0.6.0
type Workstation10Driver struct {
Workstation9Driver
}
func (*Workstation10Driver) Clone ¶ added in v0.6.0
func (d *Workstation10Driver) Clone(dst, src string) error
func (*Workstation10Driver) Verify ¶ added in v0.6.0
func (d *Workstation10Driver) Verify() error
type Workstation9Driver ¶
type Workstation9Driver struct { AppPath string VdiskManagerPath string VmrunPath string // SSHConfig are the SSH settings for the Fusion VM SSHConfig *SSHConfig }
Workstation9Driver is a driver that can run VMware Workstation 9
func (*Workstation9Driver) Clone ¶
func (d *Workstation9Driver) Clone(dst, src string) error
func (*Workstation9Driver) CompactDisk ¶
func (d *Workstation9Driver) CompactDisk(diskPath string) error
func (*Workstation9Driver) CreateDisk ¶
func (d *Workstation9Driver) CreateDisk(output string, size string, type_id string) error
func (*Workstation9Driver) DhcpLeasesPath ¶
func (d *Workstation9Driver) DhcpLeasesPath(device string) string
func (*Workstation9Driver) IsRunning ¶
func (d *Workstation9Driver) IsRunning(vmxPath string) (bool, error)
func (*Workstation9Driver) SSHAddress ¶
func (d *Workstation9Driver) SSHAddress(state multistep.StateBag) (string, error)
func (*Workstation9Driver) Start ¶
func (d *Workstation9Driver) Start(vmxPath string, headless bool) error
func (*Workstation9Driver) Stop ¶
func (d *Workstation9Driver) Stop(vmxPath string) error
func (*Workstation9Driver) SuppressMessages ¶
func (d *Workstation9Driver) SuppressMessages(vmxPath string) error
func (*Workstation9Driver) ToolsInstall ¶ added in v0.6.0
func (d *Workstation9Driver) ToolsInstall() error
func (*Workstation9Driver) ToolsIsoPath ¶
func (d *Workstation9Driver) ToolsIsoPath(flavor string) string
func (*Workstation9Driver) Verify ¶
func (d *Workstation9Driver) Verify() error
func (*Workstation9Driver) VmnetnatConfPath ¶
func (d *Workstation9Driver) VmnetnatConfPath() string
Source Files ¶
- artifact.go
- driver.go
- driver_config.go
- driver_fusion5.go
- driver_fusion6.go
- driver_mock.go
- driver_player5.go
- driver_workstation10.go
- driver_workstation9.go
- driver_workstation_unix.go
- guest_ip.go
- output_config.go
- output_dir.go
- output_dir_local.go
- run_config.go
- shutdown_config.go
- ssh.go
- ssh_config.go
- step_clean_files.go
- step_clean_vmx.go
- step_compact_disk.go
- step_configure_vmx.go
- step_output_dir.go
- step_prepare_tools.go
- step_run.go
- step_shutdown.go
- step_suppress_messages.go
- step_upload_tools.go
- tools_config.go
- vmx.go
- vmx_config.go