Ansible configurations for Zero, the Pi under my homelab
Find a file
2026-08-04 16:24:58 +00:00
.github first commit 2026-08-04 16:24:58 +00:00
inventory first commit 2026-08-04 16:24:58 +00:00
roles first commit 2026-08-04 16:24:58 +00:00
.gitignore first commit 2026-08-04 16:24:58 +00:00
AGENTS.md first commit 2026-08-04 16:24:58 +00:00
ansible-navigator.yml first commit 2026-08-04 16:24:58 +00:00
ansible.cfg first commit 2026-08-04 16:24:58 +00:00
argspec_validation_plays.yml first commit 2026-08-04 16:24:58 +00:00
configure_pi.yml first commit 2026-08-04 16:24:58 +00:00
README.md first commit 2026-08-04 16:24:58 +00:00
requirements.yml first commit 2026-08-04 16:24:58 +00:00

Homelab Zero Ansible Project

Note

You can find more specifications on my blog

This repository contains the Ansible configurations for Zero, my Raspberry Pi 5, running Raspbian.

Roles

This Ansible repository contains a number of roles, which are run from the configure_pi.yml:

  • setup-apt: installs required packages for the other roles, like ZFS, and sets up unattended-upgrades
  • setup-boot: tweaks a couple of configurations under config.txt to mount the SATA head and disable WiFi + Bluetooth
  • setup-docker: installs docker in rootless mode, adding a new rootless_docker user
  • setup-firewall: configures a firewall with nftables
  • setup-forgejo: creates this Forgejo server
  • setup-sanoid: configures Sanoid, an utility to snapshot disks automatically
  • setup-zfs-storage: creates a RAID 1 pool of 2 disks, identified by their label, and creates datasets for single services (forgejo, docker, etc.)

All variables are in plain under inventory/hosts_vars/zero.yml.

Directory Structure

 ansible-project/
 |── .github/
 |    └── workflows/
 |        └── tests.yml
 |    └── ansible-code-bot.yml
 |── roles/
 |── inventory/
 |   |── hosts.yml
 |   |── argspec_validation_inventory.yml
 |   └── host_vars/
 |── ansible-navigator.yml
 |── ansible.cfg
 |── configure_pi.yml
 |── README.md