Operations | Monitoring | ITSM | DevOps | Cloud

Dispatching Ansible playbooks with CFEngine

In large organizations and infrastructures, it’s fairly common to use multiple configuration management tools. There are many reasons for this. Different teams may have different preferences, some tools suit certain use cases better than others, and existing systems can come with their own limitations. Whatever the reason, the tools don’t have to work in isolation. In this post, we’ll show how to run Ansible playbooks on CFEngine-managed hosts using Mission Portal.

Antivirus scanning with CFEngine and ClamAV

Is the antivirus on your servers working correctly right now? Installing ClamAV takes a single command. The hard part is keeping it running on all servers, since freshclam fails without indicating a problem, cron jobs disappear, and no one notices until an audit. The new ClamAV module deals with this by ensuring that ClamAV remains operational on all hosts and also indicates to you in the Mission Portal when it isn’t.

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.