Managing and configuring network devices always makes me feel nostalgic. Log in to a console by telnet, type some commands, save the configuration to startup config, and you’re done. This workflow hasn’t changed much since the introduction of these devices. OK, to be fair, there were some changes, such as supporting SSH.
For a long time, we basically had two types of management strategies for network devices:
Buy an expensive proprietary software that configures your devices.
Develop minimal tooling around your configuration files: back up your configs locally, make some changes by editing them, and copy the result back onto the devices through the console.
However, in the last few years, we have seen some movement in this space. The first thing I noticed was that network device vendors have started to create or open their APIs for everyone. The second thing is that the so-called DevOps movement did not stop going lower down the stack, to the core: hardware servers, load-balancer appliances, firewall appliances, network devices, and even routers.
In my opinion, Ansible for network devices is the one of the most promising solutions to manage network devices, for three reasons:
Ansible supports network devices with console-only access through SSH, and is not limited to vendor APIs.
Any network operator can get productive in hours or less, as the way the modules are written is similar to what a network operator is used to doing.