Because I clearly have too much time on my hands with trying to switch skillsets to dCloud development, I decided to spend some time with Cisco DevNet as well.

This website is amazing!

I think we can all agree that the networking industry is headed towards programmability as a means of network services delivery. Where we all start to disagree is when talking about the timeline and to what level programmability will have impact, and the answer, of course is, “It depends”.

This post isn’t about the ad infinitum arguments about what’s on the horizon for networking, however. It’s really a look at my own efforts dipping my toes into the pool, and it’s here where I feel like DevNet delivers.

I feel like I’m not the only engineer who has years of experience and who feels very strong as a router jockey, network architect, and who knows the game is changing but just doesn’t know how to keep up with it. The skillset associated with network programmability is just different, and to the uninitiated, the barrier to entry seems high. DevNet to the rescue!

DevNet has an idiot-proof, prescriptive method to get started. I started digging in on this, and decided to combine it with my ‘Learn Linux’ efforts.

First is the main DevNet site, developer.cisco.com. The main DevNet site is a wealth of info, supporting starting developers as well as those who are interested in leveraging Cisco’s APIs to support programmability in their environment.

 

 

Since I am the noobiest of noobs, I focused on the Learn to Code section. I clicked Make Your First API Call, and was taken to the DevNet lab site, https://learninglabs.cisco.com. I checked out the catalog of lab programs and decided to go with Introduction to DevNet.

 

 

I went through the introductory modules, and then started the module on Git. I know what Git is, I’ve seen others talk about it, and I even used VIRL to pull INE’s labs from Git before, but I’ve never actually used Git in any real way. Before I could start, though, I had some work to do.

 

 

DevNet Labs cover a large range of different development tools, and each lab is front-ended with this “How to Set Up Your Own Computer” link that covers the install and setup of many tools. This process is a gold mine! As a network guy without development experience, I didn’t even know where to start, and so a walk-through was invaluable.

 

 

 

Hmmm… Looks like DevNet had instructions for CentOS, which is based on the RedHat kernel, but I was using Ubuntu, which is based on Debian. Some translation would be required.

 

 

In the first step, there were a lot of steps to set up CentOS with GNOME, a desktop environment for Linux. I skipped this as I am running Ubuntu Desktop. Other than that, there was a package for Development Tools to install. I had to go to Google to find a similar package for Ubuntu. It turns out that the correct package for Ubuntu is build-essential. I already had it, in this case, but if not, I would have grabbed it with sudo apt-get install build-essential. I also did an apt-get for openssl as indicated on the DevNet setup instructions, and sudo apt-get install git to install Git.

 

 

The next step was to check Git, which I installed at the same time as the build-essential package.

 

 

This was strange. When trying to do the git clone steps, I got a server certificate error. Because of this, I googled the error, which seemed to be a generic ‘client doesn’t recognize root CA of server’ type of problem.

 

With all the root CA certificates updated and reinstalled, I tried the git clone operation again, but I got the same error. At this point I had to put my kids to bed, and so I left it alone. I was lamenting my issue on RouterGods, and my colleague Dmitry offered to take a look at it with me.

He suggested I try another Git repository that he owned, and that’s when the issue showed itself.

Note the error: “Cannot verify Github.com’s certificate, issued by CN=Kaspersky Anti-Virus Personal Root Certificate”

Dmitry had helped me find the issue by way of the different error message. I run Ubuntu on a VM, and the Windows host I use for this purpose runs Kaspersky which includes SSL scanning/interception. It seemed the reason I coudln’t find an issue with my Linux setup was because it wasn’t a Linux problem; instead, my antivirus was screwing up the certificate!

 

I disabled the SSL scanning as a test and tried the git clone again. Success!

The rest of the setup steps and tools installs were uneventful and easy, and in no time, my Ubuntu Desktop was ready to tackle DevNet!

 

Next time, I’ll share more of my experiences as a programmability noob.