vmware

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2013 License: MPL-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const BuilderId = "mitchellh.vmware"
View Source
const BuilderIdESX = "mitchellh.vmware-esx"
View Source
const DefaultVMXTemplate = `` /* 2131-byte string literal not displayed */

This is the default VMX template used if no other template is given. This is hardcoded here. If you wish to use a custom template please do so by specifying in the builder configuration.

View Source
const KeyLeftShift uint32 = 0xFFE1

Variables

View Source
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 EncodeVMX

func EncodeVMX(contents map[string]string) string

EncodeVMX takes a map and turns it into valid VMX contents.

func ParseVMX

func ParseVMX(contents string) map[string]string

ParseVMX parses the keys and values from a VMX file and returns them as a Go map.

func WriteVMX

func WriteVMX(path string, data map[string]string) (err error)

WriteVMX takes a path to a VMX file and contents in the form of a map and writes it out.

Types

type Artifact

type Artifact struct {
	// contains filtered or unexported fields
}

Artifact is the result of running the VMware builder, namely a set of files associated with the resulting machine.

func (*Artifact) BuilderId

func (a *Artifact) BuilderId() string

func (*Artifact) Destroy

func (a *Artifact) Destroy() error

func (*Artifact) Files

func (a *Artifact) Files() []string

func (*Artifact) Id

func (*Artifact) Id() string

func (*Artifact) String

func (a *Artifact) String() string

type Builder

type Builder struct {
	// contains filtered or unexported fields
}

func (*Builder) Cancel

func (b *Builder) Cancel()

func (*Builder) Prepare

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

func (*Builder) Run

func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error)

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 {
	// 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

	// 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.

func NewDriver added in v0.2.1

func NewDriver(config *config) (Driver, error)

NewDriver returns a new driver implementation for this operating system, or an error if the driver couldn't be initialized.

type ESX5Driver added in v0.4.0

type ESX5Driver struct {
	Host      string
	Port      uint
	Username  string
	Password  string
	Datastore string
	// contains filtered or unexported fields
}

ESX5 driver talks to an ESXi5 hypervisor remotely over SSH to build virtual machines. This driver can only manage one machine at a time.

func (*ESX5Driver) CompactDisk added in v0.4.0

func (d *ESX5Driver) CompactDisk(diskPathLocal string) error

func (*ESX5Driver) CreateDisk added in v0.4.0

func (d *ESX5Driver) CreateDisk(diskPathLocal string, size string, typeId string) error

func (*ESX5Driver) DhcpLeasesPath added in v0.4.0

func (d *ESX5Driver) DhcpLeasesPath(string) string

func (*ESX5Driver) DirExists added in v0.4.0

func (d *ESX5Driver) DirExists() (bool, error)

func (*ESX5Driver) HostIP added in v0.4.0

func (d *ESX5Driver) HostIP() (string, error)

func (*ESX5Driver) IsRunning added in v0.4.0

func (d *ESX5Driver) IsRunning(vmxPathLocal string) (bool, error)

func (*ESX5Driver) ListFiles added in v0.4.0

func (d *ESX5Driver) ListFiles() ([]string, error)

func (*ESX5Driver) MkdirAll added in v0.4.0

func (d *ESX5Driver) MkdirAll() error

func (*ESX5Driver) Register added in v0.4.0

func (d *ESX5Driver) Register(vmxPathLocal string) error

func (*ESX5Driver) Remove added in v0.4.0

func (d *ESX5Driver) Remove(path string) error

func (*ESX5Driver) RemoveAll added in v0.4.0

func (d *ESX5Driver) RemoveAll() error

func (*ESX5Driver) SSHAddress added in v0.4.0

func (d *ESX5Driver) SSHAddress(state multistep.StateBag) (string, error)

func (*ESX5Driver) SetOutputDir added in v0.4.0

func (d *ESX5Driver) SetOutputDir(path string)

func (*ESX5Driver) Start added in v0.4.0

func (d *ESX5Driver) Start(vmxPathLocal string, headless bool) error

func (*ESX5Driver) Stop added in v0.4.0

func (d *ESX5Driver) Stop(vmxPathLocal string) error

func (*ESX5Driver) SuppressMessages added in v0.4.0

func (d *ESX5Driver) SuppressMessages(vmxPath string) error

func (*ESX5Driver) ToolsIsoPath added in v0.4.0

func (d *ESX5Driver) ToolsIsoPath(string) string

func (*ESX5Driver) Unregister added in v0.4.0

func (d *ESX5Driver) Unregister(vmxPathLocal string) error

func (*ESX5Driver) UploadISO added in v0.4.0

func (d *ESX5Driver) UploadISO(localPath string) (string, error)

func (*ESX5Driver) VNCAddress added in v0.4.0

func (d *ESX5Driver) VNCAddress(portMin, portMax uint) (string, uint)

func (*ESX5Driver) Verify added in v0.4.0

func (d *ESX5Driver) Verify() error

type Fusion5Driver

type Fusion5Driver struct {
	// This is the path to the "VMware Fusion.app"
	AppPath string
}

Fusion5Driver is a driver that can run VMWare Fusion 5.

func (*Fusion5Driver) CompactDisk added in v0.1.4

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 added in v0.2.1

func (d *Fusion5Driver) DhcpLeasesPath(device string) string

func (*Fusion5Driver) IsRunning

func (d *Fusion5Driver) IsRunning(vmxPath string) (bool, error)

func (*Fusion5Driver) SSHAddress added in v0.4.0

func (d *Fusion5Driver) SSHAddress(state multistep.StateBag) (string, error)

func (*Fusion5Driver) Start

func (d *Fusion5Driver) Start(vmxPath string, headless bool) error

func (*Fusion5Driver) Stop

func (d *Fusion5Driver) Stop(vmxPath string) error

func (*Fusion5Driver) SuppressMessages added in v0.4.0

func (d *Fusion5Driver) SuppressMessages(vmxPath string) error

func (*Fusion5Driver) ToolsIsoPath added in v0.1.3

func (d *Fusion5Driver) ToolsIsoPath(k string) string

func (*Fusion5Driver) Verify

func (d *Fusion5Driver) Verify() error

type GuestIPFinder

type GuestIPFinder interface {
	GuestIP() (string, error)
}

Interface to help find the IP address of a running virtual machine.

type HostIPFinder

type HostIPFinder interface {
	HostIP() (string, error)
}

Interface to help find the host IP that is available from within the VMware virtual machines.

type IfconfigIPFinder

type IfconfigIPFinder struct {
	Device string
}

IfconfigIPFinder finds the host IP based on the output of `ifconfig`.

func (*IfconfigIPFinder) HostIP

func (f *IfconfigIPFinder) HostIP() (string, error)

type OutputDir added in v0.4.0

type OutputDir interface {
	DirExists() (bool, error)
	ListFiles() ([]string, error)
	MkdirAll() error
	Remove(string) error
	RemoveAll() error
	SetOutputDir(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 added in v0.2.2

type Player5LinuxDriver struct {
	AppPath          string
	VdiskManagerPath string
	QemuImgPath      string
	VmrunPath        string
}

Player5LinuxDriver is a driver that can run VMware Player 5 on Linux.

func (*Player5LinuxDriver) CompactDisk added in v0.2.2

func (d *Player5LinuxDriver) CompactDisk(diskPath string) error

func (*Player5LinuxDriver) CreateDisk added in v0.2.2

func (d *Player5LinuxDriver) CreateDisk(output string, size string, type_id string) error

func (*Player5LinuxDriver) DhcpLeasesPath added in v0.2.2

func (d *Player5LinuxDriver) DhcpLeasesPath(device string) string

func (*Player5LinuxDriver) IsRunning added in v0.2.2

func (d *Player5LinuxDriver) IsRunning(vmxPath string) (bool, error)

func (*Player5LinuxDriver) SSHAddress added in v0.4.0

func (d *Player5LinuxDriver) SSHAddress(state multistep.StateBag) (string, error)

func (*Player5LinuxDriver) Start added in v0.2.2

func (d *Player5LinuxDriver) Start(vmxPath string, headless bool) error

func (*Player5LinuxDriver) Stop added in v0.2.2

func (d *Player5LinuxDriver) Stop(vmxPath string) error

func (*Player5LinuxDriver) SuppressMessages added in v0.4.0

func (d *Player5LinuxDriver) SuppressMessages(vmxPath string) error

func (*Player5LinuxDriver) ToolsIsoPath added in v0.2.2

func (d *Player5LinuxDriver) ToolsIsoPath(flavor string) string

func (*Player5LinuxDriver) Verify added in v0.2.2

func (d *Player5LinuxDriver) Verify() error

type RemoteDriver added in v0.4.0

type RemoteDriver interface {
	Driver

	// UploadISO uploads a local ISO to the remote side and returns the
	// new path that should be used in the VMX along with an error if it
	// exists.
	UploadISO(string) (string, error)

	// Adds a VM to inventory specified by the path to the VMX given.
	Register(string) error

	// Removes a VM from inventory specified by the path to the VMX given.
	Unregister(string) error
}

type VMnetNatConfIPFinder added in v0.2.2

type VMnetNatConfIPFinder struct{}

VMnetNatConfIPFinder finds the IP address of the host machine by retrieving the IP from the vmnetnat.conf. This isn't a full proof technique but so far it has not failed.

func (*VMnetNatConfIPFinder) HostIP added in v0.2.2

func (*VMnetNatConfIPFinder) HostIP() (string, error)

type VNCAddressFinder added in v0.4.0

type VNCAddressFinder interface {
	VNCAddress(uint, uint) (string, uint)
}

type Workstation9Driver added in v0.2.2

type Workstation9Driver struct {
	AppPath          string
	VdiskManagerPath string
	VmrunPath        string
}

Workstation9Driver is a driver that can run VMware Workstation 9 on non-Windows platforms.

func (*Workstation9Driver) CompactDisk added in v0.2.2

func (d *Workstation9Driver) CompactDisk(diskPath string) error

func (*Workstation9Driver) CreateDisk added in v0.2.2

func (d *Workstation9Driver) CreateDisk(output string, size string, type_id string) error

func (*Workstation9Driver) DhcpLeasesPath added in v0.2.2

func (d *Workstation9Driver) DhcpLeasesPath(device string) string

func (*Workstation9Driver) IsRunning added in v0.2.2

func (d *Workstation9Driver) IsRunning(vmxPath string) (bool, error)

func (*Workstation9Driver) SSHAddress added in v0.4.0

func (d *Workstation9Driver) SSHAddress(state multistep.StateBag) (string, error)

func (*Workstation9Driver) Start added in v0.2.2

func (d *Workstation9Driver) Start(vmxPath string, headless bool) error

func (*Workstation9Driver) Stop added in v0.2.2

func (d *Workstation9Driver) Stop(vmxPath string) error

func (*Workstation9Driver) SuppressMessages added in v0.4.0

func (d *Workstation9Driver) SuppressMessages(vmxPath string) error

func (*Workstation9Driver) ToolsIsoPath added in v0.2.2

func (d *Workstation9Driver) ToolsIsoPath(flavor string) string

func (*Workstation9Driver) Verify added in v0.2.2

func (d *Workstation9Driver) Verify() error

func (*Workstation9Driver) VmnetnatConfPath added in v0.3.0

func (d *Workstation9Driver) VmnetnatConfPath() string

Jump to

Keyboard shortcuts

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