Network Automation Options
Simple NAPALM Use – A Python based abstraction layer multivendor support capable. Part of screen scraping solution.
Ansible ConfigMgmt / Jinja2 Templates – Part of a CLI automation system solution which can be called sophisticated screen scraping. via SSH. No on-device agent or service.
Salt / NAPALM Logs – Event driven network automation. This is also a CLI automation solution and can be part of screen scraping from network device perspective. Event driven by NAPALM logs.
Netconf or Restconf with YANG – Connectivity is via Netconf/Restconf (JSON/XML) while configuration is via YANG data modeling available on device (which is a service on device). Not screen scraping or CLI automation as YANG is a data modeling language providing service and can be used to extract and push state at device.
SDN based Cisco ACI like: Northbound Rest API on APIC controller and Southbound OpFlex with an OpFlex agent on device. On device Policy Element abstraction service.
Good reference links for exploring of the above:
Ansible + Jinja2 Option:
Salt + NAPALM Abstraction Option:
Click to access 17-RIPE76_-Event-driven-network-automation-and-orchestration.pdf
https://mirceaulinic.net/2017-10-19-event-driven-network-automation/
https://my.ipspace.net/bin/list?id=xNetAut181#SALT
Links for Restconf + YANG Option:
https://networkop.co.uk/blog/2017/02/15/restconf-yang/
https://networkop.co.uk/tags/ansible-yang/
https://packetpushers.net/podcast/pq-show-116-practical-yang-network-automation/
Links for SDN Style Cisco ACI – Like:
https://wiki.opendaylight.org/view/OpFlex:Opflex_Architecture