Fixing Jenkins CLI 'ERROR: anonymous is missing the Overall/Read permission'

For the past decade or so, I've been working to automate as much of a Jenkins server build process as possible. There are a few 'hacky' bits to doing so, like managing some Jenkins XML files (or if you really want to go crazy, storing your entire $JENKINS_HOME somewhere in a source control repository!).

One of the most annoying things about automating Jenkins is using the jenkins-cli.jar file to interact with Jenkins on the CLI. It doesn't come


Speaking about Playbooks at AnsibleFest Austin 2018

I'm excited to announce I'll be presenting the session Make your Ansible Playbooks Flexible, Maintainable, and Stable at AnsibleFest Austin in the first week of October.

AnsibleFest Austin email promo

I've spent a lot of time building, maintaining, and in a few cases, completely restructuring Ansible playbooks over the past five years. I hope to distill a lot of the lessons I've learned into this presentation, and I hope anyone else who is as passionate about infrastructure automation as I am can get a lot out of it


NEDCamp 2018 - Keynote on DevOps

Over the past decade, I've enjoyed presenting sessions at many DrupalCamps, DrupalCon, and other tech conferences. The conferences are some of the highlights of my year (at least discounting all the family things I do!), and lately I've been appreciative of the local communities I meet and get to be a part of (even if for a very short time) at Drupal Camps.

The St. Louis Drupal Users Group has chosen to put off it's annual Camp to 2019

NEDCamp New England Drupal Camp logo

Recovering from surgery and living with my friend, the Stoma

It's been just over two weeks since the big one ; I had my colon removed and was given in its place an ileostomy, which dramatically changes the way I go number two.

As with most stages of my Crohn's journey, I thought I'd write up this blog post with my experiences—and maybe a liiiiittle sarcasm thrown in—for the benefit of anyone else going through a similar situation.

Bowel Prep

My doctor requested a full cleanout for this surgery, I guess

Suprep with a chaser of Fitz's Root Beer

Colons, semicolons, and Crohns surgery, oh my!

"Rectum? Darn near killed 'em!"

— My Grandma, every time she has the opportunity...

In a short time, I'll be getting a "total colectomy and proctectomy" (or, for short, "proctocolectomy"!). This is a procedure where a doctor takes a robot with pointy sticks and knives, sets it loose in my belly, and then the robot proceeds to become sentient and take over my body cut out all of my digestive system, from the

Colectomy diagram - red scribbles over large intestine colon and rectum

Kubernetes' Complexity

Over the past month, I started rebuilding the Raspberry Pi Dramble project using Kubernetes instead of installing and configuring the LEMP stack directly on nodes via Ansible ( track GitHub issues here ). Along the way, I've hit tons of minor issues with the installation, and I wanted to document some of the things I think turn people away from Kubernetes early in the learning process. Kubernetes is definitely not the answer to all application hosting problems, but it is a great fit for some, and it would be a shame

Raspberry Pi Dramble cluster running Kubernetes with Green LEDs

Dell XPS 13 (9360) Review from a lifelong Mac user

I've used Macs as my primary computing devices my entire life. And though I continue to use a Mac for my primary workstation for both work and personal projects, my use of computers has evolved in the past few years quite a bit. With more of my stuff moving into the cloud and fewer software applications being exclusively tied to macOS or Windows, it's given me more freedom to do some amount of work from a tablet (currently iPad Air 2), Mac (currently 2015 (

Dell XPS 13 9360 running Windows 10

How to upgrade the SSD hard drive in a Dell XPS 13 (9360)

June 6, 2018 Update : I've also posted a video of the SSD replacement process, embedded below:

Tools used for Dell XPS 13 SSD replacement - spudger phillips #000 and Torx T5

Reboot and wait for reboot to complete in Ansible playbook

September 2018 Update : Ansible 2.7 (to be released around October 2018) will include a new reboot module, which makes reboots a heck of a lot simpler (whether managing Windows, Mac, or Linux!):

- name: Reboot the server and wait for it to come back up.  reboot:

That's it! Much easier than the older technique I used in Ansible < 2.7!

One pattern I often need to implement in my Ansible playbooks is "


Hosted Apache Solr's Revamped Docker-based Architecture

I started Hosted Apache Solr almost 10 years ago, in late 2008, so I could more easily host Apache Solr search indexes for my Drupal websites. I realized I could also host search indexes for other Drupal websites too, if I added some basic account management features and a PayPal subscription plan—so I built a small subscription management service on top of my then-Drupal 6-based Midwestern Mac website and started selling a few Solr subscriptions.

Back then, the latest and greatest Solr

Hosted Apache Solr original architecture