Filtering with Ansible’s selectattr()/rejectattr() when the tested attribute can be absent

Ansible’s selectattr and rejectattr allow filtering of a list of dictionaries based on a specific test being executed against each dictionary’s keys and values. But what if the dictionary is not guaranteed to always have the key being tested actually defined?

How to modify a list of dictionaries with Ansible

I keep running into scenarios with Ansible for which there doesn’t seem a ready StackOverflow or Serverfault answer and which usually prompts a “You must be doing something very strange that Ansible was not made for” answer from my Belgian friends. One of these scenarios is how to modify an existing list of dictionaries with… Continue reading How to modify a list of dictionaries with Ansible

Introducing a custom Yast module for importing libvirt configuration files from existing installations

I like fresh, reproducible installs when a new version of your preferred Linux distro (in my case openSUSE) comes out. Ensuring the perceived (!) feeling that a system is a “clean” state is hard enough during its lifecycle already and ensuring it is so after doing an upgrade installation is even harder. That’s why I… Continue reading Introducing a custom Yast module for importing libvirt configuration files from existing installations

Why your kernel’s drm.edid_firmware parameter doesn’t work anymore in libvirt environments

The enterprise world is one that is fond of funny, crappy hardware gadgets such as KVM (Keyboard-Video-Mouse) switches, often in the matrix variant: you have one or more consoles connected matrix-style to different computers, for the obvious benefit of not having to connect keyboard, mouse and monitor when needed let alone have a set connected… Continue reading Why your kernel’s drm.edid_firmware parameter doesn’t work anymore in libvirt environments

Consistent udev storage names during and after OS installation: when minimal is too minimal

Getting your custom OS installation ISO to boot from both DVDs and USB sticks is but the first step in making the whole installation working from USB sticks as well. There can still be unexpected pitfalls in the course of the installation process as I encountered yesterday and while my experience was with a specific… Continue reading Consistent udev storage names during and after OS installation: when minimal is too minimal

Recreating ISOs that boot from both DVD and mass storage such as USB sticks and in both legacy BIOS and UEFI environments

This may seem to some of you like a blast from a long forgotten past but that’s what an Enterprise world often looks like: I’ve been seeing scripting that creates a custom Linux installation ISO from given public images, adds extra software repositories, install automation, provisioning for delegating to a dedicated config management tool (Puppet,… Continue reading Recreating ISOs that boot from both DVD and mass storage such as USB sticks and in both legacy BIOS and UEFI environments

Bringing OpenWrt to the Mikrotik hAP lite (RB941-2nD-TC)

In a previous post I described the Mikrotik hAP lite (RB941-2nD-TC) and its RouterOS and already suggested that I prefer to run OpenWrt on it. Because Mikrotik routers behave a bit different than the usual TP-Link, GL.iNet etc. devices and because there were some pitfalls I had to master myself, here’s some advice to keep… Continue reading Bringing OpenWrt to the Mikrotik hAP lite (RB941-2nD-TC)