RSS

Tag Archives: ansible

Looking back at 2023 part 2: Embracing Docker Containers

Funny things may happen in a year, especially those you don’t expect. One thing I definitely didn’t expect was embracing Docker Containers as I was completely unfamiliar with them nor couldn’t I mention a use case for deploying them. But here at home I finally have and I may see potentially use cases for organizations as well. I consider Docker Containers extremely useful for running light-weight applications using very little resources.

One machine having very little resources I use is an HP t520 Flexible Thin Client that I equipped with 8 GB RAM and a 256 GB M.2 SATA SSD. As this model is discontinued, it’s fine for me as I don’t intend to use these for their original purpose. See https://support.hp.com/us-en/product/product-specs/hp-t520-flexible-thin-client/6875920 for more information.

I bought a bunch of these a while ago as they may be a cheap alternative to SBC’s like Raspberry Pi’s that may still be a challenge to buy. As many of these thin clients are being decommissioned, it should be really easy to find these on the used market. However, I wouldn’t spend too much money on them. Consider being fleeced if someone asks an unreasonable price for such devices. You may consider using 1L PC’s as an alternative if more resources (like CPU, RAM and storage) are required for your scenario.

During the year, one aspect I was looking into it is choosing the OS to ‘host’ the Docker Containers. My main requirement was to have it setup in such a way that it just works and I don’t get too much ‘noise’ by frequently needing to update them. I chose to install Debian 12 (Bookworm) as I know Debian uses ‘stable’ releases only. While some components of Debian 12 may be older than other Linux distros, it does what it needs to do and I don’t need bleeding edge versions of said components. I tried using Ubuntu, both as Desktop and Server, in the past. It just doesn’t work for me as it creates too much noise. I don’t consider myself a Linux expert as I shamelessly have to look up everything a follow guides, not to mention some YouTube ‘binge watching’ sessions learning something new. I like the ‘quietness’ and the ‘fire and (more or less) forget’ vibes Debian 12 is giving me. Installing Debian 12 on an HP t520 Flexible Thin Client was a flawless experience, no issues with hardware support or driver issues, great…

At time of writing, Debian 12 (Bookworm) is the latest release. I used the steps described at https://linuxiac.com/how-to-install-docker-on-debian-12-bookworm/ to install Docker. At first, I used some ‘Docker Management’ frontend tools like Portainer to install and manage Docker Containers. Eventually, as I prefer to work with Docker Compose allowing me to use the .yaml files to build and deploy my Docker Containers, I learned to appreciate using Visual Studio Code to manage my Docker Containers. I found a very useful YouTube video that I used to reproduce the steps so go watch it if you like to know more: https://www.youtube.com/watch?v=huiQd2QojXY

I use Visual Studio Code myself for writing scripts or templates either in ARM or Terraform (note to self: really need look into Azure Bicep). What I like in Visual Studio Code, is that it works great on various platforms. I use it on Windows, Linux and Mac and it works fine for this idiot of an author.

So, at time of writing I am running the following Containers at home:

– Pi-hole (pihole/pihole:latest); DNS sinkhole for blocking ads and other potentially nasty stuff

– Nut UPSD (upshift/nut-upsd); for collecting telemetry data of my UPS directly connected by USB I use to protect my network equipment for voltage fluctuations (pretty common when using solar panels) and potential outages

– Netbootxyz (ghcr.io/netbootxyz/netbootxyz); for installing Linux OS based VMs on my home lab which saves me the hassle of managing ISO

– Samba Server (gists/samba-server); for having a small SMB share when PXE has issues but also as a share for installing Windows using Microsoft Deployment Toolkit

– Corosync Qdevice (debian-qdevice:latest); Here’s the Qdevice container I mentioned in my previous post (insert link). I used the instructions mentioned at https://raymii.org/s/tutorials/Proxmox_VE_7_Corosync_QDevice_in_Docker.html but made small modifications to make it work for Proxmox VE 8 using Debian 12 (bookworm)

– Uptime Kuma (louislam/uptime-kuma); a small leightweight monitoring service that I need to use more intensively

– Home Assistant (ghcr.io/home-assistant/home-assistant:stable); yes, I started getting myself familiar with Smart Home automation. I expect to expand on this more in the future. The main feature I use it for is to collect telemetry data my DSMR Smart Meter using a USB cable directly connected to my Docker host.

Regarding monitoring my DSMR Smart Meter, I used different approaches in the past. I discarded them once I discovered I can directly integrate them in Home Assistant. These tools may be useful if Home Assistant is cannot be directly connected to a DSMR Smart Meter.

More containers may be installed later as I noticed that thin client is far from fully utilized.

Here’s a screenshot of the Sensor data of my thin client running Docker Containers:

As you can see, still lots of room to run more stuff.

This was a lot of fun. Heck, now that I have a running home lab, I may even go crazy deploying my own Kubernetes Cluster but that’s for next year…

 
Leave a comment

Posted by on 29/12/2023 in Uncategorized

 

Tags: , , , ,

 
Steve Thompson [MVP]

The automation specialist

Boudewijn Plomp

Cloud and related stuff...

Anything about IT

by Alex Verboon

MDTGuy.WordPress.com

Deployment Made Simple

Modern Workplace

The secret of smart working unveiled...

Daan Weda

This WordPress.com site is all about System Center and PowerShell

Abheek Speaks

My Views on Technology and Non Technical Issues

Heading To The Clouds

by Marthijn van Rheenen