In the first four parts of What did you Expect, we covered the basics of getting started with automating interactions for network equipment. In the first few posts it was important have a networking environment that was 100% stable. The last thing I needed when I was trying to learn to use python to automate network devices that were randomly unresponsive and would crash my code. In order to accomplish that I built a test network you can read about here in GNS3, created a basic configuration to enable a IOS device to be remotely managed. I also wrote a quick multi-device ping tool to verify that all the devices are responsive before we run remote code against them. I made my life easy. But as all operators know our lives are not that cut and dry. So I started to break things…and my code did not like me. Read more
So lets start off with I am an old dog and I am learning new tricks. My entire career I have avoided the dreaded programing. In college I slid by my degree requirement for a coding class by taking Visual Basic for Industrial applications. I hated it. Debugging drove me nuts and there is still a hole in my bedroom wall at my parents where that brick of a VB found itself one night around 2am. From there I was just gun shy and honestly had plenty of other things going on that could afford to ignore learning anything outside of the basics of HTML and CSS.
Cut to today, I am in my late 30’s and going through a career transition of sorts. My timing for the transition is decent because the network industry is also going through a bit of a transition. For awhile now all the cool kids have been doing automation and Dev/Ops in the Server, OS and application space. But networks are trickier. I will leave out all the discussion of why because that horse has been beat dead a few times online. In this transition over the past six months or so I have found myself doing things I would never have guessed even a year ago.
So what types of things you ask. Ok for one I am now doing dev work. Mind you it is not great dev work and I will never be a professional developer but I have been writing code. In one case even some minor code for a library that is now in production with clients…scary huh. But mostly I am coding to learn and help move other people along the Path to Automated Networking including myself.
I have been working to learn how to use Python to automate interactions with network devices. Due to what I have in my lab and the fact that we have GNS to model Cisco Networks I started with IOS. In order to really test out the automation scripts I have been building, I felt it was necessary to run them against at least ten devices to make sure they would scale out and recover well from errors. In order to do that I had to build out a 10 device lab. This is how I did it. Read more