hashicorp / hashicorp/packer-plugin-hyperv

GetHostAdapterIpAddressForSwitch returns wrong IP address

Open
#104 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Go
Stars
27
Forks
28
PR merge metrics
No merged PRs in 30d

Description

GetHostAdapterIpAddressForSwitch is returning an IP address that is incapable of acting as a server.

On one Hyper-V server, it's returning the IP of the iSCSI adapter, which has no gateway and cannot be used as a server.
On another server it's returning a 169 address.

The problem seems to be with this on line 42 of hyperv.go.
$HostNetAdapterConfiguration = @(Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $HostNetAdapter.InterfaceIndex | Where-Object SuffixOrigin -notmatch "Link")

This results in the build waiting forever at -
==> hyperv-iso.vm: Waiting for SSH to become available...

This may be a problem for any server that doesn't return the appropriate interface as the first result for this powershell command.
Get-NetIPAddress -AddressFamily IPv4 -InterfaceIndex $HostNetAdapter.InterfaceIndex | Where-Object SuffixOrigin -notmatch "Link"

Packer version 1.9.1
hyperv-iso version v1.1.0_x5.0 - that's what I see in the exe filename. Installed via 'packer plugins install github.com/hashicorp/hyperv'.

Running on Windows Server 2019

If interfaces that did not have a gateway were excluded, the problem would be resolved. Get-NetIPAddress does not provide a way to see the gateway unfortunately.
I'm wondering if a better solution is to provide a way to set an override variable like http_interface or http_bind_address.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.