To automate, or not to automate
In an age where automation seems to be everywhere you look, is it really everything it’s made out to be, should we be scared about the robots taking our jobs? The short answer from my newly gained insight is that we can live in harmony with our binary crunching friends.
Any network engineer involved in large projects will know the feeling of unboxing switches, stacking them, upgrading them, and configuring them. And for those who don’t know that feeling, it’s not fun, but it’s a rite of passage for many. So why aren’t we trying to automate this task to take out some of the work involved? Well, that’s the question I found myself asking recently when surrounded by a mountain of Cisco boxes.
Automating switch provisioning isn’t exactly a new concept, it’s been around for a number of years now, but with most projects running at pace, you don’t often get the opportunity to step back and think, “How can we make this process better, more efficient, and create less room for human error?” Because let’s face it, humans make mistakes, that’s what makes us human, right?
Cisco has included a Zero Touch Provisioning (ZTP) feature labelled ‘Auto-Install’ in its Catalyst firmware since around version 12.4, so why have I not come across this before?! That revelation aside, attempting to ignore the vast amount of time I’ve spent manually upgrading switches in the past, it was time to investigate what this little feature could do.
After a bit of Googling, I came across a program written by John W Kerns called FreeZTP. This python-based program will automate the monotonous tasks involved in provisioning switches by utilising a DHCP and TFTP server, leaving you time to get on with other work. In somewhat of a Linux and Python learning curve, I installed the program onto a Raspberry Pi and started experimenting. Having little to no experience with Linux, I enlisted the help of a more knowledgeable colleague and we got to work learning the capabilities of FreeZTP. After some trial and error, and some badly formatted CSV’s, we got it working as we wanted. To sum up my findings, when a brand-new switch stack powers up and is plugged into the Pi, it acquires a DHCP address along with a couple of options stating where the TFTP server is, and what to download from it. When the switch has its initial configuration it will download its final config based on a CSV, with the serial numbers of that stack and an EEM script to renumber the switches and set their priority.
Has my life dramatically changed now that I have automated myself out of a job? Not exactly. Whilst FreeZTP does a great job 95% of the time, there are some factors out of its control, like switch version mismatches or faulty stack cables, which create an issue for the provisioning process. This means that there are still some elements of manual input required to make sure every switch stack has been upgraded and configured correctly, but it has done exactly what I set out to achieve. In essence, I no longer have to worry about configuring a switch interface incorrectly, I do not have to sit watching switches upgrade their firmware, and it gives me the chance to work on improving the rest of the workflow. Can my testing be automated? Can my configuration generation be automated? Absolutely. Going forwards, I now have time to focus on other aspects of my job knowing that my new Raspberry flavoured colleague is doing the long-winded bit.
So, what does this actually mean on a business level? Well a quicker, better quality, more efficient network build-out means happier engineers, happier project managers and, in turn, the ultimate goal, happier customers who can be confident that they’re getting the absolute best standard of work possible, delivered in a timely manner.
Should you be automating more in your business? Shoutworks published a great article documenting when it’s time to start automating a task. If the answer is yes to any of these questions, then it may be time to take a look at what great things you can achieve by automating even the smallest of tasks. I was initially a bit pessimistic about the whole future of networking with the “DevOps” buzz word flying around recently, but after this small dose of automation and programming, I can honestly say I’m excited to learn more.