Having recently moved my ansible install from a CentOS6 to a CentOS7 based node, now the ssh version is pretty modern, and ansible in smart mode has switched from using paramiko to ssh.
Now it’s quicker thanks to pipelined mode, but now the reporting of a ssh failure has lost useful information.
For example, with paramiko, you had:
FAILED => FAILED: Authentication failed.
… for nodes up, with ssh listening, but no valid auth for some reason
FAILED => FAILED: timed out
… for nodes down, no ssh response at all
FAILED => FAILED: [Errno -2] Name or service not known
… for nodes not even resolved in DNS
… and other possible messages.
Now with ssh, you only get:
FAILED => SSH Error: data could not be sent to the remote host. Make sure this host can be reached over ssh
whatever the cause, the same message for all cases listed above.
I appreciate the increased speed, but sometimes I need to be able to take actions depending of the kind of failure. For example, if a node is not down but someone has messed with the ssh keys I must correct it (first example). If it’s simply down (the other cases), normally I can’t do anything but wait for the user to power it up again.
Anyone knows if there is something that can be done about this, and get again rich ssh error messages instead of the generic one with ssh mode?