Why this is so special to me is that I started my automation journey with an ipSpace.net subscription which was a very key part of my early success with Ansible and Cloud automation specifically. Ivan has also personally helped me write better code and taken a personal interest in my success.
I am so incredibly humbled and thankful for Ivan’s recognition but even more by his commitment to be honest and open with his vast knowledge.
In a lot of ways I am trying to emulate Ivan’s approach and appreciate having a virtual mentor of such quality and capability.
So you want to automate all the things in your network? Great! more and more enterprises are realizing the benefits of automating the network and are demanding more from their engineering staff. You’re also probably thinking about your career as well and how these automation skills will really come in handy to progress your career. Like I said, Network Automation skills are in high demand now.
So now what?
If you’re like me, you’ll jump straight into it and quickly realize that automating what can be considered the “life and blood” of an enterprise can be a daunting task. Rest assured though, there are things you can do today to begin your automation journey without needing to jump right into the deep end.
Standardize and Document
It would be remiss if I start off by saying that JC in his book “Automate Your Network” recommends starting your Automation Journey off by documenting and standardizing anything and everything in your network. For me, a big benefit of doing this before I dove into python and scripting was that I was able to bring my environment into a standard that makes building automation a very simple task.
I admit that it took me a bit of time and investment to bring my network into a working standard but once things were aligned it made the code I wrote that much more reusable.
Template all the Things!
If your like me, than you probably have a bunch of standard configuration commands stowed away in an Excel Document. You may not know it but one simple thing you can do as your start the automation journey is to convert those Excel Documents into clean (and reusable) code using the JINJA2 python library.
By templating your commands with JINJA2 you’ll immediately see the sky is the limit when it comes to where those commands can be run from. Whether you push those templates to another Python Library like pyATS / netmiko or simply document them for other team members, you’ll quickly see the benefits of “codifying” those CLI commands at an early stage.
Create Tooling for your Team
As a Senior Engineer, whenever I see a team member create a little tool or even a dashboard I get all jittery and excited. In my opinion, enabling your team is a selfless task that is often forgotten about. This is something I recommend you do (regardless of where you are along your automation journey) as it will get you working with other frameworks and you’ll be one step closer to a more automated and programmatic environment.
The Command Line Interface. A near 60-year old technology a majority of the world’s networking teams solely rely on for their architectures, designs, monitoring, operations, and support. Most of us, pre-DevNet, have been raised and groomed to become CLI wizards and warriors with a super-hero level of ability being the standard expectation.
But the dirty secret is the CLI sucks and we are literally using a tool that was released half-a-century-ago. Imagine if COBOL (1959) was still the only programming language in the world ? Welcome to Enterprise IT Networks – here is the CLI – good luck to you!
Well today I am going to reimagine a modern, next-generation, CLI using Python and see if I can breathe new-life into our very old friend the CLI.
Why does the CLI still suck?
It is grounded in it’s historical roots. Take for example that the original IOS had 256kB of memory with pre-Pentium chipsets! So they needed a lean and text-driven CLI to configure and operate the early routers and switches.
It is also why the modern next-generation devices come with a REST API that supports RESTCONF, NETCONF, and YANG models – they want to you get away from the CLI and move towards a modern approach.
But what about the legacy fleet? The brownfield? What if my staff are religious about the CLI ? Or fearful to learn REST, start using Postman and JSON, or even dreaded network automation like Ansible or Python ?
Culture will change over time but we need an easy, accessible, and palatable alternate to SSH’ing into devices one by one to perform CLI operations.
Take the most basic, first-to-be-run on any device, command show version.
In this video, the first I’ve ever done, I explore how, using Python, pyATS, Genie, Jinja2 Templates, and Cloud REST APIs, we can create the next-generation show version command – check it out!
My first Hello World! was not actually a true programming language test – in fact it was the first message I sent over telephone lines on my 2400-baud modem to another BBS (Bulletin Board System for anybody not familiar with pre-Internet computer networking) system admin who was helping me setup “The Backspace BBS” back in 1990. Seeing the words “Hello World!” typed out (slowly) across the monitor of my x286 – typed by “somebody else” out there in the world behind their computer was a memory I will never forget. My fascination and lifelong journey with computer networking had begun!
This Hello World! is equally miraculous given I registered the domain name, hosting space and a Linux platform. From there I installed WordPress on my Linux host out in the cloud somewhere, all via my browser with easy point and click steps. A few minutes of WordPress customization later and boom – I’ve established a place where I can share my journey in this world as a network engineer, and, more specifically, my transformation and metamorphosis into more of a solution developer using DevOps tools and treating infrastructure as code. It is a pretty amazing world we live in where I can do all of this from my home office in about 45 minutes from scratch.
Here I will share my thoughts on infrastructure as code and network automation; discuss the tools and techniques I am using to achieve my goals, and provide as much guidance and insight into my process. In addition to being a Sr. IT Planner and Integrator for the Canadian House of Commons (Parliament) (but this site is strictly my personal thoughts and opinions which are *not* endorsed by the House of Commons), I am also an author. Check out the Books link for information about my first book, “Automate Your Network: Introducing the Modern Approach to Enterprise Network Management”, as well as my upcoming follow-up “Automate Your Network: APIs for Infrastructure”.
Thank you for joining me on this journey – we are going to learn a lot from each other !
I wonder what my next Hello World! will be created with! Only time will tell!