Merge pull request #1505 from jasonberanek/issue-1480
builder/vmware-esx: Ignore localhost for VNC lookup and document VNC requirements [GH-1480]
This commit is contained in:
commit
5e4ffb56d0
|
@ -151,6 +151,8 @@ func (d *ESX5Driver) VNCAddress(portMin, portMax uint) (string, uint, error) {
|
|||
var vncPort uint
|
||||
|
||||
//Process ports ESXi is listening on to determine which are available
|
||||
//This process does best effort to detect ports that are unavailable,
|
||||
//it will ignore any ports listened to by only localhost
|
||||
r, err := d.esxcli("network", "ip", "connection", "list")
|
||||
if err != nil {
|
||||
err = fmt.Errorf("Could not retrieve network information for ESXi: %v", err)
|
||||
|
@ -161,12 +163,13 @@ func (d *ESX5Driver) VNCAddress(portMin, portMax uint) (string, uint, error) {
|
|||
for record, err := r.read(); record != nil && err == nil; record, err = r.read() {
|
||||
if record["State"] == "LISTEN" {
|
||||
splitAddress := strings.Split(record["LocalAddress"], ":")
|
||||
log.Print(splitAddress)
|
||||
if splitAddress[0] != "127.0.0.1" {
|
||||
port := splitAddress[len(splitAddress)-1]
|
||||
log.Printf("ESXi Listening on: %s", port)
|
||||
log.Printf("ESXi listening on address %s, port %s unavailable for VNC", record["LocalAddress"], port)
|
||||
listenPorts[port] = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for port := portMin; port <= portMax; port++ {
|
||||
if _, ok := listenPorts[fmt.Sprintf("%d", port)]; ok {
|
||||
|
|
|
@ -342,6 +342,11 @@ ISO and various files locally, and uploads these to the remote machine.
|
|||
Packer currently uses SSH to communicate to the ESXi machine rather than
|
||||
the vSphere API. At some point, the vSphere API may be used.
|
||||
|
||||
Packer also requires VNC to issue boot commands during a build,
|
||||
which may be disabled on some remote VMware Hypervisors. Please consult
|
||||
the appropriate documentation on how to update VMware Hypervisor's firewall
|
||||
to allow these connections.
|
||||
|
||||
To use a remote VMware vSphere Hypervisor to build your virtual machine,
|
||||
fill in the required `remote_*` configurations:
|
||||
|
||||
|
|
Loading…
Reference in New Issue