Mocking HTTP Requests
Aug 16, 2019
Unit testing has a feature called mocks. Mocking allows a test to replace a piece of code with another piece of code so the results are deterministic. For example, a database should be up 100% of the time but there may be network problems preventing the database from being reached. Mocks can be used to fake the response from the database so tests can be run.
Meraki uses HTTP response code 429 to tell the client their rate limit has been reached.
My Kubernetes Journey
Jul 5, 2019
Kubernetes (aka. k8s) has been one of the hottest topics in the infrastructure world for about two years. It wasn’t until late last year I really got on the containers bandwagon via Docker. But Kubernetes was something else that I didn’t want to touch. I thought it was overkill for my modest needs at home and too complicated to delve into without some solid time for setup and education. Stars aligned when I received access to some labs at work and the gift of a quiet week due to the 4th of July falling on a Thursday.
Ansible 2.8 Meraki Modules and Beyond
May 25, 2019
Ansible 2.8 was released and it sets the table for some big changes in future releases. Specific to the Meraki modules, there are quite a few changes worth understanding.
New Modules Three new modules were added: meraki_content_filtering, meraki_static_routes, and meraki_syslog.
meraki_content_filtering allows for full configuration of the content filtering settings for MX appliances. I intended on releasing a facts module for it but that wasn’t merged in time for 2.
iPad Air 2 Keyboard Reviews
May 4, 2019
I have owned two iPads - iPad 3 and iPad Air 2. Keyboards were indispensible for both of them. For my iPad Air 2, I used the Belkin QODE Ultimate Pro Keyboard. It isn’t cheap but it is good enough that I bought a second one when my first one broke. When it broke because I was cooking and spilled some liquid on it, I decided it was time to look into either a new iPad or a new keyboard of a different brand, namely due to price.
Using ansible-test with Docker
Mar 29, 2019
ansible-test is a utility Ansible developers can use to perform tests (ex. unit, integration) against their code. If you are developing a playbook or role, this utility isn’t for you.
Ansible uses venv for Python environment containment. I have two systems I do development on and have been using the venv as prescribed by the documentation. However, one of my systems decided to forget it had certain Python packages installed. After about 45 minutes of debugging both venv and pyenv, I got frustrated and took to IRC.
Trouble in Internet Paradise
Mar 14, 2019
Internet connections at my house are considered critical infrastructure. I need to create change windows with my wife when I need to make disruptive network changes. When I have made disruptive changes without telling her, she noticed very quickly. So it was particular troubling when I was out of town, on only day 2 of a 4 day trip, when I get a text from her - “The Internet isn’t working”.
“Recursively Modifying Python Data Structures”
Mar 14, 2019
My Ansible Meraki modules send the raw responses from Meraki back to the playbook. However, Ansible’s standard is to use snake case formatting instead of camel case like Meraki does. Snake case uses underscores (ex. admin_id) and camel case uses capital letters (ex. adminId). To be consistent with other Ansible modules and the parameters in the modules, Ansible 2.9 will convert rewrite all the keys in Meraki’s response from camel case to snake case.
“Website Analytics With Fathom”
Mar 9, 2019
Google Analytics is the de facto standard for web site analytics. Rightfully so too. Google Analytics can harvest a massive amount of information about visitors and behavior on a web page. This however, comes with a privacy cost. Google tracks users everywhere on the Internet and uses it for profit. It is Google’s pervasiveness that drives me to use other services. When I started kevinbreit.net I installed Google Analytics tracking to get started.
“Bye-Bye Lambda - Moving kevinbreit.net Away From Lambda”
Mar 4, 2019
My experiment of deploying my website via AWS Lambda and Hugo has been abandoned and chalked up as a productive failure. Instead of AWS Lambda, I’ve moved to a more traditional CI/CD (Continuous Integration/Continuous Delivery) pipeline using Atlassian Pipelines.
Reliability Lambda seems to be quite reliable for the right tasks. The more short lived, but the better it is. I trust it would make 10,000 function executions a day without a sweat.
“Ansible's Meraki Modules - Developing Playbooks”
Feb 27, 2019
Introduction Part 1 of this series gives a peek into the internal architecture of the Meraki modules in Ansible. Descriptions of the internals are interesting but they don’t explain how to write playbooks to configure Meraki environments.
For this example, we will create a combined network, add a switch, and configure a switch port on the switch.
All Meraki modules, except for the meraki_organization and meraki_config_template modules, are expected to be idempotent.