Ansible collection used to provisioning my homelab. Some roles I've created do the following:
- Install drivers (Nvidia, ZFS) for Debian systems
- Install/manage Docker on Debian systems
- Install/configure stateless observability agents (Grafana Alloy)
- Install/manage Samba
- And more
- Set up molecule (vagrant backend? need vagrant boxes representative of homelab OSes)
- Configure NFS server/mounts for clients
- Configure RKE2
- Manage Docker compose projects?
- Manage prometheus config/rulesets?
- Makefile for common operations
- Limited windows support?
- Low priority, but other OS support? RHEL
There are certain groups and vars that these playbooks may expect. Look at the defaults of each role to see the var formats it expects under your host/group vars.
Some groups that the playbooks may expect
nvidia: Hosts that have a Nvidia GPUzfs: Hosts that need ZFS driverslocal/remote: Hosts on local/remote networks (used for configuring Alloy push endpoints)storage: Hosts that need to host a Samba share
# Create venv
python3 -m venv .venv
# Activate venv
. .venv bin activate
# Install python reqs (ansible)
pip install -r requirements.txt
# Install ansible reqs (collection)
ansible-galaxy install -r requirements.yml
ansible-playbook jgerega.homelab.docker -i yourinventoryhere.yml