Automation and programmability is not a new topic for me. Having studied Information Technology in High School I’ve always coded somehow, never making it my primary focus but always using it as a tool to make my life easier. I remember a script I did in Pascal to create a menu to load custom maps for Doom II instead of using the CLI. It would be great to find it again but it’s very unlikely because I trashed so many PCs and hard drives since, well, at least I hadn’t bitcoins stored there!
Quite often cable management is something that starts well when a new IDF is deployed and then gets messier over time. Cable p0rn channel on reddit shows plenty of example of how cabling should look like. I usually don’t do cabling and I’m not good at it either so I’ll not post my home lab setup ;-) Unpatchable? The real problem with poor cable management arises when a new box must be connected and all switch ports are already patched.
Summertime usually means a busy period for Network Engineers, customers are on holidays and we have the opportunity to performs all the changes that impact network connectivity. For me this usually means core switch replacement. Today I was moving a configuration from an HP8200 to a Cisco 4500, taking care of all the details of ports, trunks, vlans. From this: to this: When a task is manual, boring, repetitive and error-prone my automation skills came to help.
SecureCRT is one of my favourite tools, today I had a chance to use it in a way I didn’t expected. A customer called with a problem: he has a radio bridge that sometimes loses connection with the remote unit. The workaround is to reload the base unit. The process is manual, he monitors the radio bridge status and reload when required. Since the radio bridge is not business critical he doesn’t have budget to replace tha radio bridge or troubleshoot the problem, the request was to automate the check/reload process.
This week I attended a two days training of Cisco DCINX9K. The training is focused on Cisco Nexus 9000 switches in NX-OS mode. NX9K can run two different software images, the full ACI image with all the cool SDN stuff and the traditional NS-OX image with some cool features like Python, Rest API, VX-LAN and more. Now it’s time to improve my Python skills and borrow a couple of boxes to do some labs.
Networking is awesome but some tasks may be quite boring and repetitive. For new campus network installations a lot of time is used just to put a basic initial configuration template on switches. Each vendor has its proprietary method to distribute configs automagically but sometimes the effort to setup the system is simply too much. A common practice is to prepare a template in a test environment then copy it changing the IP address, hostname and a few other parameters.
Inspired by the CodeAcademy project, I’ve decided to learn a programming language this year. Back in high school I’ve learnt Pascal, Delphi, Assembly and C but many years passed so I forgot all the sintax but not the basics. What I need is some basic scripting, read and write on a DB, a web interface and integration with network protocols. After reading some websites, googling a lot, I choose Python that has a simple sintax, many libraries and is widely used so I think I could get support from many forums available.