way to upload configuration file to Cisco router?

I am new to Ansible and am trying to figure out the best approach using Ansible to upload a configuration file to several Cisco devices. Cisco recommends using the console port or Ethernet management port and I was leaning towards the console port and TFTP for uploading the config file generated by Ansible. Using Ansible, it is easy to generate a config file, but now I am wondering what the best approach is for uploading to Cisco. Has someone already solved this? Is there already a Cisco console module? Or is SNMP a better approach? It seems like searching for Ansible and Cisco would return many results, because this seems like such an obvious application of Ansible, but I have not been able to find anyone doing this, but maybe I’m just not searching for the right keywords.

Generally working with Cisco routers is difficult right now, though Jason Edelman has done some work to start to speak to them over OnePK, the reason for this is they aren’t really like Linux boxes, so direct SSH isn’t so good for them - but an API is.

Other vendors have had APIs for longer, so you can see some established things for Arista - Juniper is still working on Python modules AFAIK but there are some Ruby-based ansible ones, and folks like Cumulus are managed so close to Linux that they can just use basic config templates - which make them pretty neat to work with.

Ultimately though, we are not a network management solution - but a lot of people have found places to use these things together and that’s definitely good if it works for them.