Ansible configurations for Zero, the Pi under my homelab
- Jinja 100%
| .github | ||
| inventory | ||
| roles | ||
| .gitignore | ||
| AGENTS.md | ||
| ansible-navigator.yml | ||
| ansible.cfg | ||
| argspec_validation_plays.yml | ||
| configure_pi.yml | ||
| README.md | ||
| requirements.yml | ||
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, likeZFS, and sets upunattended-upgradessetup-boot: tweaks a couple of configurations underconfig.txtto mount the SATA head and disable WiFi + Bluetoothsetup-docker: installs docker in rootless mode, adding a newrootless_dockerusersetup-firewall: configures a firewall withnftablessetup-forgejo: creates this Forgejo serversetup-sanoid: configures Sanoid, an utility to snapshot disks automaticallysetup-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