Merge pull request #1110 from higebu/revert-the-way-to-retrieve-vm-ip-in-esxi-driver

Revert the way to retrieve VM IP in Remote ESXi Builder
pull/1116/head
Mitchell Hashimoto 12 years ago
commit a64662e92f

@ -174,18 +174,35 @@ func (d *ESX5Driver) SSHAddress(state multistep.StateBag) (string, error) {
return address.(string), nil
}
r, err := d.run(nil, "vim-cmd", "vmsvc/get.guest", d.vmId, " | grep -m 1 ipAddress | awk -F'\"' '{print $2}'")
r, err := d.esxcli("network", "vm", "list")
if err != nil {
return "", err
}
ipAddress := strings.TrimRight(r, "\n")
record, err := r.find("Name", config.VMName)
if err != nil {
return "", err
}
wid := record["WorldID"]
if wid == "" {
return "", errors.New("VM WorldID not found")
}
r, err = d.esxcli("network", "vm", "port", "list", "-w", wid)
if err != nil {
return "", err
}
record, err = r.read()
if err != nil {
return "", err
}
if ipAddress == "" {
if record["IPAddress"] == "0.0.0.0" {
return "", errors.New("VM network port found, but no IP address")
}
address := fmt.Sprintf("%s:%d", ipAddress, config.SSHPort)
address := fmt.Sprintf("%s:%d", record["IPAddress"], config.SSHPort)
state.Put("vm_address", address)
return address, nil
}

@ -323,6 +323,16 @@ In addition to using the desktop products of VMware locally to build
virtual machines, Packer can use a remote VMware Hypervisor to build
the virtual machine.
<div class="alert alert-block alert-info">
Note: Packer supports ESXi 5.1 and above.
</div>
Before using a remote vSphere Hypervisor, you need to enable GuestIPHack by running the following command:
```
esxcli system settings advanced set -o /Net/GuestIPHack -i 1
```
When using a remote VMware Hypervisor, the builder still downloads the
ISO and various files locally, and uploads these to the remote machine.
Packer currently uses SSH to communicate to the ESXi machine rather than

Loading…
Cancel
Save