Rsyncing a directory from a remote host to another remote host, with each remote host requiring separate SSH key,s user and ssh_opts

My problem is pretty simple, but so hard to solve with Ansible.

I want to rsync a directory from a remote host to another remote host. The internet says I should use delegate_to for the source machine to copy to the host/target machine.

Problem is that the two machines require different pem (SSH) keys to access them, require a different user and also require different SSH options (one of them must be connected to Proxy command).

The hard part comes from the fact that delegate_to only allows you to put the address, port and maybe the user for the delegated_to/source machine. I don’t know how I can define different SSH keys for the “host” and the “delegate_to” boxes, or how to specify different SSH options for each.

I don’t usually ask such “noob” questions like this but there is no concrete information on the web and documentation on delegation is pretty light…

Please help, I am stuck on this…