There are lots of network automation tools around. But do you know what is the difference of each tools? I’m going to introduce what you can achieve with each tools.
First of all, I want to classify this network automation into three categories:
- Network Operation Automation … in the old days, you need to log in to each devices via ssh / telnet to change configuration. Tools in this category aims to automate these processes.
- Configuration Management … this includes not only version management(e.g. RANCID, Oxidized), but also host grouping(e.g. AS numbers)
- Service Management … In the previous categories, each configurations are stored separately. In this category, configuration is separated into each services(e.g. snmp-community, ntp server settings) rather than each device. You can control all the devices by services.
Network Operation Automation
NAPALM ( or netmiko ) is the popular library to achieve this automation. TeraTerm macro also can be considered in this category in some way. With manual operation, you had to do all the tasks one by one, but it can be done in just a line once you write a code to do your task.
Configuration Management(and Network Operation Automation)
Ansible, or more recent Nornir are in this category. As illustrated they use some form of network operation automation. In other words, tools in this category provides “management of managed hosts, groups and tasks” and also provides “network operation automation” using previously mentioned tools –e.g. Nornir uses Napalm to carry out operation.
Cisco NSO is service orchestration and lifecycle management tool. There are not many tools in this category because of the difficulty to merge all the variations of many vendor devices. However, in terms of SDN(or SDWAN) each vendor has this function in their proprietary platform –e.g. BIO in Silver peak.