Recent Blog Posts

Another year, another Crohn’s hospitalization

Being in the hospital with Crohn’s disease is miserable.

But before I get too negative, I have to confirm one major benefit to having an ostomy and being hospitalized: it’s a lot easier to give stool samples now. I don’t even need a toilet!

Anyways, while a lot of us who have chronic diseases often laugh it off or put on a happy face, and post to our social media accounts, it’s a slog. It’s not fun. You think long and hard and try anything and everything to avoid a hospitalization—and sometimes the stress you get from that makes the situation even worse!

How to idempotently change file attributes (e.g. immutable) with Ansible

I recently needed to force the /etc/resolv.conf file to be immutable on a set of CentOS servers, since the upstream provider's DHCP server was giving me a poorly-running set of default DNS servers, which was getting written to the resolv.conf file on every reboot.

There are a few different ways to force your own DNS servers (and override DHCP), but one of the simplest, at least for my use case, is to change the file attributes on /etc/resolv.conf to make the file immutable (unable to be overwritten, e.g. by the network service's DHCP on reboot).

Typically you would do this on the command line with:

chattr +i /etc/resolv.conf

And Ansible's file module has an attributes (alias: attr) parameter which allows the setting of attributes. For example, to set the attributes to i, you would use a task like:

Drupal VM 5.1 ('Recognizer') brings PHP 7.4 support

PHP 7.4.0 running on Drupal VM with Drupal 8's status report page

Drupal VM 5.1.0 was just released (release name Recognizer), and the main feature is PHP 7.4 support; you can now begin running and testing your Drupal sites under PHP 7.4 to check for any incompatibilities.

PHP 7.4 includes some new features like typed properties, arrow functions, and opcache preloading which could help with certain types of code or site deployments (I'm interested to see if opcache preloading could help the startup time of Drupal inside container environments like Kubernetes!).

Everything I know about Kubernetes I learned from a cluster of Raspberry Pis

I realized I haven't posted about my DrupalCon Seattle 2019 session titled Everything I know about Kubernetes I learned from a cluster of Raspberry Pis, so I thought I'd remedy that. First, here's a video of the recorded session:

The original Raspberry Pi Dramble Cluster
The original Pi Dramble 6-node cluster, running the LAMP stack.

Run Ansible Tower or AWX in Kubernetes or OpenShift with the Tower Operator

Note: Please note that the Tower Operator this post references is currently in early alpha status, and has no official support from Red Hat. If you are planning on using Tower for production and have a Red Hat Ansible Automation subscription, you should use one of the official Tower installation methods. Someday the operator may become a supported install method, but it is not right now.

I have been building a variety of Kubernetes Operators using the Operator SDK. Operators make managing applications in Kubernetes (and OpenShift/OCP) clusters very easy, because you can capture the entire application lifecycle in the Operator's logic.

AWX Tower Operator SDK built with Ansible for Kubernetes

The best way to keep your cool running a Raspberry Pi 4

From home temperature monitoring to a Kubernetes cluster hosting a live Drupal website, I have a lot of experience running Raspberry Pis. I've used every model through the years, and am currently using a mix of A+, 2 model B, and 4 model B Pis.

Stack of Raspberry Pi model B and B+ 2 3 4

The 3 model B+ was the first generation that had me concerned more about cooling (the CPU gets hot!), and the Pi 4's slightly increased performance made that problem even more apparent, as most of my heavier projects resulted in CPU throttling. I've written about how the Raspberry Pi 4 needs a fan, and more recently how it might not.

Pages

Subscribe to Jeff Geerling's Blog