Pipelining doesn't have any effect on authentication - it bundles up individual module calls into one bigger file to transfer over once a connection has been established.
In order not to stop execution and prompt you to accept the SSH key, you need to disable strict host key checking, not enable pipelining.
You can set that by exporting ANSIBLE_HOST_KEY_CHECKING=False
or set it in ansible.cfg with:
[defaults]
host_key_checking=False
The latter is probably better for your use case, because it's persistent.
Note that even though this is a setting that deals with ssh connections, it is in the [defaults]
section, not the [ssh_connection]
one.
==
The fact that when you type yes
you fail to log in makes it seem like this might not be your only problem, but you haven't given enough information to solve the rest.
If you're still having connection issues after disabling host key checking, edit the question to add the output of you SSHing into the instance manually, alongside the output of an ansible play with -vvv
for verbose output.
First steps to look through when troubleshooting:
- What are the differences between when I connect and when Ansible does?
- Is the
ansible_ssh_user
set to the right user for the ec2 instance?
- Is the
ansible_ssh_private_key_file
the same as the private part of the keypair you assigned the instance on creation?
- Is
ansible_ssh_host
set correctly by whatever is generating your dynamic inventory?