I often see the statement Ansible manages clients using SSH or WinRM. While this is a true statement, it is also incomplete.
Ansible currently has 26 connection types which you can find at https://docs.ansible.com/ansible/latest/plugins/connection.html
For me personally, some of the other interesting connection types are :
netconf and network_cli are commonly used to perform network device automation.
psrp is similar to WinRM however it has the added benefit of being used via a proxy which is very useful when you have to consider bastian hosts.
vmware_tools is a relatively new addition to the ansible family and allows you to execute commands, transfer files to vSphere based systems without using the VM network.
Most Ansible developers will have also used connection type local in many of their playbooks, probably without realizing that it was a different connection type.
Ansible is also extensible. If you need to connect to something weird and wacky (but of great importance to you) then you can develop your own modules and connection plugin (or other sorts of plugins) – see https://docs.ansible.com/ansible/latest/plugins/plugins.html
Ansible versatility doesn’t end there though and many newcomers to ansible don’t realise that you can also manage multiple clouds, container platforms and virtualisation platforms – it’s the Swiss Army knife of IT automation.