Bashify your DevOps

published on 02.01.2025
tags: complexity homelab homeautomation

In the quest for efficient homelab maintenance, I found myself navigating a maze of automation tools, from Ansible to Chef, each promising streamlined management and ease of use. However, what I encountered instead were frequent headaches and endless debug sessions, particularly with Ansible, which seemed to thrive on Python dependency issues that often derailed my efforts. Frustrated by the complexity and overhead of these solutions for my relatively simple local setup, I decided to take matters into my own hands. This led me to the realization that sometimes, the best approach is to strip away the layers of abstraction and craft a custom solution tailored to my needs—enter my own bash script system. In this blog post, I’ll share my journey from convoluted automation frameworks to the simplicity and effectiveness of scripting, and how it transformed my homelab experience.

Thank you DuckDuckGo AI for providing this great introduction!

Basically, the whole thing got the Jist. If continiously had issues with python dependencies and Ansible, especially if the Linux distributions upgraded their provided python versions and therefore things crashed. Since i actually do mostly simple stuff like a good ol apt-get upgrade, and all my systems are Linux systems, I decided that I will go with the most basic effort thats possible.

I'm very aware, that in very very large professional environments, this might not be the right things to do. Especially, if you're not just focussing on one OS(Linux) and one distribution(Ubuntu).

To mention this upfront, my homelab is not my home automation which is by now just a HomeAssistant running on a Raspberry Pi.

My homelab consists of two ProxMox servers (Minisforum and a ThinkCenter). This homelab hosts some general services I sometimes use more or less. To save power on this, the Homelab has some scheduled availability times:

To manage this, I taught my 24/7 Raspberry Pi to boot and shutdown both machines via Wake-on-LAN.

So what do I want to happen:

The process, is the following:

This system is not much, but it's now capable of doing everything that was possible before my home automation reduction journey. I'm not a big expert of bash scripts since I'm professionally a Developer, not a DevOps person, but I was able to write a well extendable library of bash scripts in not even a whole working day. Let's see, how reliable it is. At least also here, I removed a lot of software from my stack.

Before

Now

Where "mutt" is even the only thing that needs to be installed after creating a new machine.

I think I was very successful with this, and it actually makes me happy to see how simple some things can be.

Links: