I was recently working on an issue where I had a systemd service that I didn’t want to run anymore (but I didn’t want to remove the service itself, and I also didn’t want to mask it). The obvious a...
Talking to systemd Through dbus with Python
As users of systemd, it is a fairly common to use systemctl to interact with the system manager. But what if you’re writing code and you want to programmatically interact with units and services? O...
Creating a Python package for Ubuntu... From code zero to apt install
Some of the work I am doing right now has me creating packages that should be distributed to Ubuntu Linux machines. For those of us that aren’t new to the Linux world, it is a normal thing to apt i...
Kubernetes’ AlwaysPullImages Admission Control - the Importance, Implementation, and Security Vulnerability in its Absence
Kubernetes is big and only getting bigger. What this means is that as adoption is on the rise, the natural progression is more Kubernetes clusters thrust into production. Oftentimes security is an ...
Extending Kubernetes - Create Controllers for Core and Custom Resources
Kubernetes is powerful and ships with a lot of out-of-the-box functionality. But as we start to think of new ways to use Kubernetes, we may want to have the ability to create our very own “Kubernet...
Logging to systemd in Python
One of the common themes in modern Linux is the adoption of systemd. Like it or hate it, it is here to stay. The main component of logging in systemd is the Journal, controlled by journald. Linux ...
Get the History of an Installed Package with DNF
DNF (“DaNdiFied Yum”) is the next version of Yum, the package manager for RPM-based Linux distributions (RHEL, CentOS, and Fedora). For those of us that are Fedora users, DNF is probably nothing ne...
Logging, Flask, and Gunicorn... the Manageable Way
Logging is one topic that some (many?) find boring. But something we can all agree on is that it is absolutely vital to software development and operations. Beginners to Flask (a lightweight but po...
Debugging a Python Flask Application in a Container with Docker Compose
Writing and debugging Python applications by themselves isn’t hard: Just kick it off with pdb and you’re in the debugger. But when you start adding layers on top of it like Flask (web framework), ...
SSH Through a Jumpbox to a Protected Server
This is a common pattern: You have a protected server (or servers) that aren’t publicly accessible. Typically, you may have what is commonly referred to as a “jumpbox”, which is accessible from a p...