Skip to main content



Designing WAN Availability

·1761 words·9 mins
One of my hot topics in my past that I haven’t seen written about often is the calculation of WAN availability and what the design is built for. There is often the number of 9’s whether that is 5 9s or 3 9s or otherwise, where do you start? Well, in the past the post by outlines system reliability. It talks about designing systems in parallel and in serial. What does that mean.

DevNet Expert Workstation On Debian

·1072 words·6 mins
As part of my journey of using my Debian based Dev Workstation, as well as my studies towards completion of the DevNet Expert, I wanted to get up and running with the DevNet Workstation example that would help to become familiar with the environment that would be found at the live exam. There were a few small quirks along the way, so I thought I would go ahead and create a post about how to get started.

Debian Finger Print Login

·636 words·3 mins
As a long time MacBook user and of recent years on the M1 using the TouchID system that allows for fingerprint authentication, this is something that I wanted to get to work pretty quickly for myself. I had tried a couple of different options to get fingerprint reading to work. Through the 3 methods, I finally have one that works, and I figured it would be worth the share. Attempted Routes # Now some of these may seem foolish as I write after the fact.

Nautobot Environment File

·820 words·4 mins
Within Nautobot there are many ways to be able to get the Nautobot environment running. Environment variables are used quite a bit in the Docker environment following best practice principles set forth in the 12 Factor App. The use of environment variables is helpful for working through the various stages of an application to production. The installation instructions leverage a single environment variable NAUTOBOT_ROOT and that is set in the SystemD files shown below:

Upgrade Nautobot Python Version in Virtual Machine

·738 words·4 mins
One observation lately is that Python is moving along quickly with new versions and new EOLs. Along with needing to make these updates, the applications that Python uses will also need to be moving along. Nautobot is my favorite, and in my opinion the best SOT platform available in the open source ecosystem today. So let’s dive into the updating of the Python version. For this post, I’ve created a new Rocky 8 Virtual Machine to be the host.

Using Google Earth for Golf

·1264 words·6 mins
I’m going to diverge a small bit from the straight network automation space that I have blogged about primarily and dive a small bit into the world of using Google Earth to help prepare for your golf game. Upcoming, I’m playing in a Minnesota Golf event at two courses in late August. I’m going to put together a green book for myself and figure this would be a great topic to touch on how I’m going about this activity.

Workstation Troubleshooting 2023

·814 words·4 mins
In my previous post I wrote about a workstation that I was working on building. It took an incredibly long time to get up and into a stable environment. But I have finally accomplished stability (hoping to not jinx it here with the post). I went through a fair bit of troubleshooting to get to this point. Symptom # The symptom that was having instability was that the system would freeze randomly.

Desktop Build 2023

·851 words·4 mins
Here I’m going to dive into what I’m planning to build out for my next desktop here in 2023. Prime Day is nearly upon us, and I’m anticipating (but do not know for sure) that prices on some of the gear that I’m looking for will be available at a good price. I’m also looking to build out a bigger system in order to run some intense VMs up coming.

Nautobot: Get IP Addresses From Nautobot

·1988 words·10 mins
One of Nautobot’s primary functions is to serve as an IPAM solution. Within that realm, the application needs to provide a method to get at IP address data for a device, quickly and easily. In this post I will review three prominent methods to get an IP address from Nautobot. It will demonstrate getting the address via: Nautobot REST API curl Python Requests GoLang HTTP pynautobot Ansible Lookup Nautobot GraphQL API curl Python Requests GoLang HTTP pynautobot Ansible Lookup Each method I will demonstrate how to get the IP address for Loopback0 on the device bre01-edge-01 within the demo instance of Nautobot.

Slack Canvas

·529 words·3 mins
Hot Take: Newly released (at some point anyway) is Slack Canvas, what looks to be a little bit of on demand wiki, collaboration space, and possibly (based on marketing materials) workflow organizer. This came to light as a “pop up” when I went into a Slack window on my mobile. Being a curious person and someone that is willing to try out new things I jumped right in. The Take # Without reading any marketing pages or anything else, I just started to do a few things with it.

Nautobot Remote Validation

·1351 words·7 mins
In this post I’m going to dive into a bit more on the Nautobot custom validators. This is a powerful validation tool that will allow for you to write your own validation capability, including in this demonstration on how to complete a validation against a remote API endpoint. The custom validators are a part of the Nautobot App extension capability. This allows for custom code to be written to validate data upon the clean() method being called, which is used in the majority of API calls and form inputs of Nautobot.

Poetry Fix

·391 words·2 mins
The Python Poetry is our go to package management system thus far, you can see that in all of the Python projects that Network to Code open sources, such as Nautobot, pyntc, network-importer, and NTC-Templates. Lately though, I’ve been having some challenges when my HomeBrew updates happen and my system Python gets updated. I’ve been able to recover with the help of the same few pages I land on from my Google searches.

Nautobot Secrets - Hashicorp Vault

·638 words·3 mins
With Nautobot, one of the things that came up was how to work with secrets. Nautobot itself is not the place to maintain secrets, as it is not a vault. There may be some good cryptographic libraries out to handle this, but by its nature, that is not the intent. So Nautobot has written methods to be able to retrieve secrets from proper vault sources and be able to leverage them.

Nautobot Jobs in Jobs Root

·1902 words·9 mins
Today I was working to demonstrate how to get started with Nautobot Jobs within the Jobs root of Nautobot. This is not a pattern that I develop often, as I am typically developing Jobs within a plugin as my development standard. More to come on that later. During this case, the ask was to build a Job that would connect to a network device. I had a few troubles that I didn’t want to have to work through on a call that had limited time and that was a screen share.

Moving to Hugo

·1065 words·5 mins
In this post I dive into more about my migration of the blog site to Hugo static content system. I will dive into primarily the why and how during this post. This also dives into the few changes that I had to make in order to make the change over from a Jekyll site to the Hugo site. Why Migrate? # While I do not have a ton of posts, I do have a few that I like to get out into the wild periodically.

Nautobot IP Provisioning

·1393 words·7 mins
One of the great things about building an enterprise system, is being able to get systems to work cohesively amongst themselves to bring a complete solution. One of the workflows that is often required in a static IP address environment is the need to provide static IP addresses to hosts on a network segment. When using an IPAM (IP Address Management) solution such as Nautobot, the APIs and SDKs/modules made available for use in automation workflows is paramount to having the cohesion to make a seamless IT system.


GraphQL - Aliasing

·1052 words·5 mins
One of the features that I find myself using periodically that I think is underrated as far as using GraphQL is its ability to alias return keys in the response. This can be extremely helpful for developers writing applications, as it allows them to have the API response with the keys they are looking for. I have found this feature particularly useful when working on applications like Meraki and Nautobot together.

Automation Inventory

·713 words·4 mins
This is a topic that I’m fairly opinionated on as of late is looking at what should be maintained within an inventory and the strategy of how to set up the inventory. For the case of this blog post, I am going to use the term playbook to represent the automation being run. This is yes an Ansible term, but also apply this as your automation run that is using Nornir or any other automation framework.


DevNet Expert - Starting Point

·540 words·3 mins
This week Cisco announced the DevNet Expert certification exam. This exam and certification is something that I have been looking forward to for a long while. Dating back to the announcement of the certifications that were being provided. This was announced at Cisco Live 2019 in San Diego. I had started to lose some hope that this would become a reality with how long of a delay from the initial announcement to the announcement of availability.

Nautobot Jobs - Your Custom API Endpoint

·1729 words·9 mins
One of the best features of Nautobot as a Network Automation Platform is the ability to create your own custom code. This is executed via a job. What makes Nautobot unique is its ability to integrate with a Git repository to get those jobs and code for use into Nautobot. This provides perhaps the simplest, authenticated, and logged methodology for building your own API endpoints. Nautobot supplies an API endpoint to start execution of jobs.