Thanks for helping me understand.
I don’t think “in a convient form in other tools” really applies. The reason here is that none of these tools are decentralized, and this behavior in those tools also has to be configured.
In our case, the most flexible place to configure that if you wanted to is currently the SSH configuration file.
Now, that all being said, you wish to keep your configuration in version control. That’s fine. Now in most of those other tools, it’s usual to say, keep the configuration file for the tool itself along with the project. However, in this case, yes, it’s decentralized.
Should you choose to keep this in your configuration file, easily solve this problem.
A) set a “-f” in your ansible_ssh_options to point to the configuration file
B) check this file in alongside your playbooks as ansible.cfg
This will result in that SSH config being used every time.
I don’t believe we have ever invalidated the idea that it should be possible, and each time we’ve suggested how it can be done.
The crux of it is as follows – it doesn’t make sense to expose in Ansible an option for every option in OpenSSH. This bloats the system unneccessarily where it’s meant to be a minimal system – let OpenSSH do what it does best and support feeding arbitrary options to it.
Now, all being said, I recognize that it may not always be strategic to do this even by jump hosts. If running inside EC2, it is much nicer to run ansible inside of EC2, rather than funneling everything through the jump host.
It is for this reason that Ansible and/or AWX may likely support multiple workers at some point in the future, as we initially did way back when creating Func. But right now, most people will run their EC2 playbooks from a management node inside EC2, etc.