Skip to content
All projects
Ansible / YAML·A dev workstation from bare metal, reproducibly

Griffin

Ansible playbooks that take a bare Linux or macOS machine to a fully configured development workstation, verified on every push across Ubuntu, WSL, and macOS runners.

3
platforms tested in CI: Ubuntu, WSL, macOS
65
YAML task files, idempotent by construction
0
manual steps to rebuild a machine

Stack

AnsibleYAMLBashZshGitHub ActionsHomebrewWSL

The premise

A development machine accumulates state. Six months of apt install, a dotfile edited at 1am, a PATH entry nobody remembers adding. Then the laptop dies, or a new person joins, and the setup is archaeology.

Griffin makes the workstation reproducible: the machine is described in version control, and rebuilding it is a command rather than a weekend.

Why it earns its place here

It is tested on three platforms in continuous integration. Ubuntu, WSL, and macOS each have their own workflow that runs the playbook on a clean runner. An Ansible role that works on the author's machine is a script; one that provisions a fresh Ubuntu runner, a WSL environment, and both Intel and Apple Silicon macOS is infrastructure.

That is also the hard part. The same intent - install this tool, set this preference - is apt here, homebrew there, and a registry-adjacent quirk in WSL. The playbooks abstract the intent and branch on the platform, rather than forking into three copies that drift.

Structure

  • 65 YAML task files, organized by concern, each idempotent, so re-running converges rather than duplicating
  • Separate playbooks for Linux and macOS sharing common roles
  • Configuration import for KDE and editor settings
  • Linting via reviewdog in CI, documentation built and published automatically, releases managed by release-please

Let’s build something that lasts

Hiring a senior engineer or architect for a remote team? I work across EU and US time zones - tell me what you're building.

Newsletter

I write about software architecture, PHP, Vue, TypeScript, and developer experience. No spam, unsubscribe anytime.

Copyright © 2026. All rights reserved.