ProxMox builder ssh communicator uses ssh_host from builder config when present

This commit is contained in:
Peter Pribula 2019-04-25 11:43:12 +02:00
parent 9f3bbd249c
commit c261428c4f
1 changed files with 13 additions and 1 deletions

View File

@ -71,7 +71,7 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
},
&communicator.StepConnect{
Config: &b.config.Comm,
Host: getVMIP,
Host: commHost(b.config.Comm.SSHHost),
SSHConfig: b.config.Comm.SSHConfigFunc(),
},
&common.StepProvision{},
@ -98,6 +98,18 @@ func (b *Builder) Run(ctx context.Context, ui packer.Ui, hook packer.Hook) (pack
return artifact, nil
}
// Returns ssh_host config parameter when set, otherwise gets the host IP from running VM
func commHost(sshHost string) func(state multistep.StateBag) (string, error) {
if sshHost != "" {
return func(state multistep.StateBag) (string, error) {
return sshHost, nil
}
}
return getVMIP
}
// Reads the first non-loopback interface's IP address from the VM.
// qemu-guest-agent package must be installed on the VM
func getVMIP(state multistep.StateBag) (string, error) {
c := state.Get("proxmoxClient").(*proxmox.Client)
vmRef := state.Get("vmRef").(*proxmox.VmRef)