I Deleted an EC2 Instance Behind Terraform's Back. Here's What Happened

In my previous Terraform post, I built a disposable Ubuntu EC2 instance with Docker installed. I could run terraform apply, get a clean Docker host, use it and destroy it when I was done. That solved the problem I had at the time. But what happens if I lose the state file? What happens if somebody deletes the instance directly in AWS? Does Terraform immediately create another one like Kubernetes would? What happens when a resource has to be replaced, and how do I stop a bad Terraform change from quietly reaching main? ...

October 18, 2026 · 11 min

I Broke My Ansible Lab, and Fixing It Taught Me a Few Things

In Part 1, I built a small Ansible environment with one control node and two managed Ubuntu web servers. Then I decided to break and fix it. First, My Nodes Got Stuck At one point, my managed nodes were taking forever to restart in Multipass. They were stuck long enough that it was obvious something was wrong. Then I force-stopped them, deleted them and purged them. Then I recreated: node1 node2 with the same names. ...

September 6, 2026 · 8 min

Automating Linux Web Servers with Ansible

Recently, my team was working on installing ArcGIS Pro on multiple machines. We got complaints from some users who couldn’t access the software because of licensing and permission issues, while other users had everything working smoothly. That situation got me thinking about configuration management. If we already had machines where ArcGIS Pro was installed and working in the state we wanted, how could we make sure the other machines were configured consistently instead of troubleshooting them one at a time? ...

September 4, 2026 · 14 min

How Linux Questions Reveal Your Systems Thinking in DevOps Interviews

DevOps interviews rarely include a round labeled “Linux”, but Linux is present in almost every technical discussion. It appears when containers fail to start, when a deployment hangs, when disk fills unexpectedly, when a service cannot be reached, etc. Linux questions inside DevOps interviews are rarely about commands alone. They reveal whether you understand how systems behave underneath modern infrastructure. Below are common Linux-style questions that come up in DevOps interviews, and what they actually evaluate. ...

February 26, 2026 · 7 min

What Actually Happens Between docker build and a Running Server

The first time I ever built a Docker image, it worked. The container started, port mapped, and the app responded in the browser. But if I’m being honest, I couldn’t clearly explain what happened between docker build and seeing that response. I understood the commands, but I did not fully understand the flow. In this write-up, I will walkthrough a small application from source code to a running container on a remote server and explain what is happening at each stage. ...

February 24, 2026 · 7 min

Lowering Setup Cost With Containers

Docker changed what I consider worth setting up. Without containers, trying new software usually means committing to an environment: Pick an OS. Install dependencies. Open ports. Configure access. Hope you remember what you did the next time you come back. Even when the goal is just to try something, the setup feels heavier than the thing you’re actually interested in. The cost in time adds up, now you’re more hesitant to fire up the service or tool. ...

January 28, 2026 · 2 min

I Got Tired of Rebuilding Docker Test Environments, So I Terraform’d It

I’m rebuilding part of my AWS setup and figured this was a good time to write this down instead of relying on memory. Any time I need a clean Docker environment to test images or mess around without breaking anything important, I really don’t want to be clicking through the AWS console or babysitting a server. Usually, the problem is me needing an Ubuntu box, Docker installed, basic access set up. Doing this manually means clicking through EC2, setting up security groups, opening ports, SSH’ing in, installing Docker, and then deciding what to do with the instance when I’m done. ...

January 12, 2026 · 5 min