Makes builder to respect ssh_proxy_* configuration #62
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In general those changes allows us to use proxy in order to check the address given it by vmware dhcpd. The changes are rip-off of the original plugin SDK: https://github.com/hashicorp/packer-plugin-sdk/blob/main/communicator/step_connect_ssh.go#L109
The catch here: in general under perfect conditions this change are not needed, because VMware Fusion/workstation connects locally, but if we're using corporate VPN which redirects all the traffic (but localhost) to the corporate network - we can't reach the VM anymore. I found just one way to do so relatively simple: by using SO_DONTROUTE which skips the routing table and allows to communicate directly to the interfaces. So any simple (python/go) proxy with
remote.setsockopt(socket.SOL_SOCKET, socket.SO_DONTROUTE, 1)
will allow to communicate to VM. In order to not break any compatibility proxy interface looks good - after the packer verified the IP address we can move on to ansible provisioner and through the packer provided proxy (or http_proxy env variable) control the transport to the VM.