I Want Better Logging

Ugh just give me the variables.
More →

10 Things I Hate About Es

To the tune of 10 Things I Hate About You by Leah Kate. 10 You’re complex 9 You’re bloated 8 Your death makes me elated 7 Fulla yourself ’til you’re degraded Only 6 gigs and I had to scale it 5 You’re brittle 4 Worse than grep 3 You still got funding issues 2 Years of goodwill that you blew 1 I hate the fact that I can’t quit you
More →

Fun With Kernel Cipher Hacking

Or how to run encryption backwards
More →

Network Audio with PulseAudio

I have wanted to get remote sound sinks working ever since it saw it in action during a local Linux user group meeting. It was a bit beautiful in its simplicity – once you connected to the Wi-Fi the remote sink for the wireless speakers would magically appear, you select it as your sound output and you’re done. No cords, no passwords, no awkward pairing, and no noticeable delay. With the help of a Raspberry Pi and a few spare moments during the holidays I was able to get everything up and running.
More →

Zone Merges

Or how to not rely on DNS ordering
More →

Traceroute From Scratch

This would be a pretty good interview question. Suppose you’re on a system which is having trouble downloading the latest packages. You’re on the phone with the network team and they ask for a trace. But much to your dismay the traceroute command isn’t on the system. How do you proceed? The Short Answer #! /usr/bin/env bash host=google.com for i in seq 1 256; do ping -4 -c 1 -t $i $host | grep -iF 'from' [[ ${PIPESTATUS[0]} ]] && break done The Long Answer In order to keep packets from erroneously bouncing around a network indefinitely IP packets, both IPv4 and IPv6, have an 8-bit field denoting the packets ‘time to live’ or TTL.
More →

Selinux Mystery

Unraveling odd behavior on a basically brand new system
More →

Hello Docker

Moving from traditional services to Docker
More →

Username Prediction in Bash

This all started with a request from one of our users who had a very specific issue. Their workflow makes heavy use of the cd ~username syntax, and for difficult to spell usernames, they relied on tab completion which broke when their machine was updated. More experienced admins than myself will probably be able to guess the issue from the beginning, especially once they know that we moved to RHEL7 with SSS.
More →

Deploying This Site

Episode 1: A simple Ansible pipeline.
More →