Monitoring MVP

Asset management, documentation and monitoring are important parts of any IT Ops team but at the same time they are boring, repetitive, error prone. Last summer I spent some time investigating the possibility to integrate open source projects I like to create a Minimum Viable Product for asset management/monitoring and learn something during the process. This is far from being something complete or production ready but I think it worth to share before it get lost in some abandonware repository on my laptop.


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.

HP Procurve to Cisco switchport migration with Python and Netmiko

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.

OED tools: Pushover

The problem In my last post about Linux at command I talked about notifications on my mobile. In most of my automation scripts I prefer notifications to come to my mobile instead of via email or SMS (really? in 2015?) because: it is always with me I check it thousands times a day (I know you too ;-) ) it is a preferred channel - a specific app just for that The automation There are many notification services available today for free or minimal cost.

OED Tolls: Linux "at"

Another post on Linux commands, short and simple but very useful: at. The problem As IT pros we are all comfortable with the change window concept. This window usually opens at night or during the week-end and sometimes the change actually just requires a few commands on a Linux machine. The automation The at command allows to schedule a command or script to be run at a specific time.

SecureCRT and Python

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.

Cisco Nexus 9000 training DCINX9K

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.

Quick Python code with Jinja2 and config templates

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.

Let's Python!

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.