Automatic mounting of known removable media with systemd in non-graphical environments

In a Unix/Linux context, the term “automount” is often interpreted as the automatic on-demand mounting of devices or remote filesystems as soon as a controlled path is accessed: the actual mounting is deferred to the moment the path is first accessed. Or in other words: only when it is needed. But what if we want… Continue reading Automatic mounting of known removable media with systemd in non-graphical environments

How Apple (and Avahi) effectively killed CUPS’ printer discovery for enterprise Linux environments

Not saying that you fell for clickbait but this is going to be a quite opinionated piece that didn’t go anywhere next to the scrutiny a LWN article would have gone and merely represents a summary of my findings on this particular topic so far.

APC SmartUPS 750, apcupsd and power failure: what exactly happens, where “UPS Rbt off” and “UPS StayOff” come from and which delays are configurable and which are not

In theory, an Uninterruptable Power Supply (UPS)’s workings such as the APC SmartUPS 750 in connection with an attached PC are trivial: when power fails and battery capacity runs low, the PC is shut down. When power returns, the PC is turned on again. In reality, there can be confusing messages such as UPS Rbt… Continue reading APC SmartUPS 750, apcupsd and power failure: what exactly happens, where “UPS Rbt off” and “UPS StayOff” come from and which delays are configurable and which are not

Executing arbitrary commands in your libvirt/Qemu virtual machine through Qemu guest agent

Many of us are used to installing additional Virtualization software-specific tools in virtual machines in order to get seamless Copy & Paste, higher screen resolutions — think “VMWare tools” or the “VirtualBox guest extensions”. So does Qemu, the working horse behind most libvirt-powered virtual machines these days, with the “Qemu guest agent”. But did you… Continue reading Executing arbitrary commands in your libvirt/Qemu virtual machine through Qemu guest agent

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