retry ssh authentication failures
Most of the time an ssh authentication failure would be non-recoverable, but some host images can start the ssh service before it is properly configured, or before user authentication data is available. Log ssh authentication errors and allow the provisioner to retry until the connection timeout.
This commit is contained in:
parent
d4eb6049b3
commit
943972cd8f
|
@ -171,8 +171,12 @@ func (c *Communicator) Connect(o terraform.UIOutput) (err error) {
|
|||
host := fmt.Sprintf("%s:%d", c.connInfo.Host, c.connInfo.Port)
|
||||
sshConn, sshChan, req, err := ssh.NewClientConn(c.conn, host, c.config.config)
|
||||
if err != nil {
|
||||
log.Printf("fatal handshake error: %s", err)
|
||||
return fatalError{err}
|
||||
// While in theory this should be a fatal error, some hosts may start
|
||||
// the ssh service before it is properly configured, or before user
|
||||
// authentication data is available.
|
||||
// Log the error, and allow the provisioner to retry.
|
||||
log.Printf("[WARN] %s", err)
|
||||
return err
|
||||
}
|
||||
|
||||
c.client = ssh.NewClient(sshConn, sshChan, req)
|
||||
|
|
Loading…
Reference in New Issue