FreeBSD Provisioning Ansible collection

Hi everyone,

I wanted to share with the community a rather extensive Ansible collection I've been working on for months to provision FreeBSD hosts, taking care of, on a per Ansible role basis:
  • Node bootstrapping (e.g. installing Python, configuring SSH, installing "core" packages, etc).
  • OS patching.
  • Host tuning (e.g. limited hardware configuration, e.g. CPU microcode, power levels, etc.).
  • Boot-time settings (e.g. kernel modules to load, kernel tunables, etc.).
  • Runtime settings (e.g. various runtime sysctl's).
  • Network (e.g. various types of interfaces, DNS resolver, etc.).
  • Monitoring (e.g. boot notifications, SSH abuse, select services availability, etc.).
  • ZFS (pool importing, automated encrypted datasets unlocking, replication, etc.)
  • Users & groups.
  • Samba Server (main configuration, shares configuration, and user management).
  • NFSv4 Server (tuning and shares configuration).
  • NFS Client (tuning and shares mounting).
  • vm-bhyve based VM management.
  • Bastille based jail management.
All of these were developed as a solution to the challenge that migrating my workloads away from TrueNAS CORE posed to me, because I didn't want to continue on the legacy 13.3 OS, but I also didn't want to turn to some new alternative that would, again, completely hijack OS administration away from me.

With this solution, I can fully deploy my workloads to vanilla FreeBSD and retain full control of the OS, either via direct command line administration, updating the roles and inventory configuration and rerunning the automation suite or, most probably, both.

So, without any further ado, here's the source code, with some documentation scattered throughout (top-level README and then per-role README's): https://github.com/AP-Labs-IO/FreeBSD-Provisioning

Like I said, this automation suite was developed over several months to migrate all my workloads away from TrueNAS CORE, and it worked wonders for that in a single pass when I finally pulled the trigger (after much rehearsing in a VM), but, of course, it can still be considered a work in progress. So, please feel free to offer any feedback you might have!

And if you'd like me to describe how I upgraded to vanilla FreeBSD 15.1 on the legacy freenas-boot pool, while preserving the ability to boot back into TrueNAS should there be any need for it (verified, but luckily unnecessary so far), let me know and I'll create a quick write up.

Thank you!

Cc vermaden toddg JohnK
 
Back
Top