I guess that is just one of the things you've to know, so maybe it helps someone else.
We saw some warnings in our playbook rollouts like
[WARNING]: sftp transfer mechanism failed on [192.168.23.42]. Use
ANSIBLE_DEBUG=1 to see detailed information
They were actually reported for sftp
and scp
usage. If you look at the
debug output it's not very helpful for the average user, similar if you go
to verbose mode with -vvv
. The later one at least helped to see
parameters passed to sftp
and scp
, but you still see no error message. But if
you set
scp_if_ssh: True
or
scp_if_ssh: False
you will suddenly see the real error message
fatal: [docker-023]: FAILED! => {"msg": "failed to transfer file to /home/sven/testme.txt /home/sven/
.ansible/tmp/ansible-tmp-1568643306.1439135-27483534812631/source:\n\nunknown option -- A\r\nusage: scp [-346BCpqrv]
[-c cipher] [-F ssh_config] [-i identity_file]\n [-l limit] [-o ssh_option] [-P port] [-S program] source
... target\n"}
Lesson learned, as long as ansible
is running in "smart" mode it will hide all error messages
from the user. Now we could figure out that the culprit is the -A
for AgentForwarding, which is for
obvious reasons not available in sftp
and scp
. One can move it to group_vars ansible_ssh_extra_args
.
The best documentation regarding this, beside of the --help
output, seems to be the commit message
of 3ad9b4cba62707777c3a144677e12ccd913c79a8.