Operations | Monitoring | ITSM | DevOps | Cloud

Installing CFEngine with Ansible

You started with Ansible, and for a long time it was the only thing you needed. With a handful of playbooks and an inventory file, you got the job done. However, as the fleet grew, runs went from taking minutes to hours, and parts of the inventory were unreachable at any given moment. This is not an Ansible flaw. Push-based configuration and continuous state enforcement are simply two different jobs. This blog post is all about getting you started with a hybrid system.

Change in behavior: Storage promise

CFEngine 3.29.0 changes how storage promises treat a filesystem that is already mounted. A promise for an unmounted filesystem now mounts only that filesystem instead of all unmounted filesystems, edit_fstab actively maintains the file system table entry to keep it aligned with the promise even when the filesystem is already mounted, and an unmount promise acts only on the explicitly promised filesystem.

Getting started with Ansible playbooks in CFEngine

Recently, I’ve been playing around with the ansible promise type by Fabio Tranchitella. It’s amazing how easy it is to leverage the benefits of agents with all the existing automation from the ansible community. Hence, I wanted to share it in a blog post, with an emphasis on easy. Let’s start off by creating a new cfbs project in a cfengine-ansible directory. Make sure to answer yes on the prompt to build on top of the default policy set.

May the 4th be with you and your data

Drive failures are a matter of when, not if. The good news is that most modern drives warn you before they fail, using S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology). The challenge is collecting that data across a fleet and making it actionable. The new inventory-smartctl module makes this straightforward with a single cfbs add. Once installed, the module auto-detects all storage devices, caches their SMART data, and exposes it as inventory attributes in Mission Portal.