Saturday, January 26, 2019

Ansible for automation - rant post

Just wanted to see if I'm the only frustrated engineer in the crowd...

Out environment is rather large, mostly Cisco - that includes switches/routers in datacenter/WAN/LAN. Recently we've been trying to have our "devops transformation" (fill in whatever buzzword you see fit), started using ZTP and Ansible for automation in the datacenter environment (a rather new Cisco deployment - vPC, EVPN, lots of BGP etc.)

Rant is - Ansible integrations seems really frustrating and bugged. Just from the top of my head -

  1. Nexus switches (N9K Gen 1 & Gen 3) - NXAPI gets stuck, sometimes returns errors, isn't reliable enough (I'm sick of running playbooks twice just for the sake of being sure!)
  2. Cisco's Ansible support - some of the modules simply don't work with new versions (9.2.2), some of the functions are not even in a well built module so we use nxos_config (basically SSH to the device and pour on the config)
  3. Length! My Lord, what is it with Ansible that turns every 4 lines of BGP config into a 100 lines playbook (not mentioning the directories, and host_vars, and inventory to manage etc.)?
  4. Ansible can't handle logic at all. If you wanna deploy, for example, a few pairs of ToR switches and every one of them has a management IP that's driven from the rack number - you can't even do that math normally (and reside to creating a huge number of variables per switch, not even talking about subnets, loopbacks, BGP ASN, OSPF process IDs etc.).

Seriously considering moving to NAPALM, eNMS, or try some Netconf/YANG stuff with python. Any other suggestions that aren't Anisible?



No comments:

Post a Comment