A comprehensive collection of Ansible roles for managing and automating my homelab infrastructure.
This Ansible collection contains roles dedicated to
- Configuring Proxmox Virtual Environment nodes
- Applying base configuration to Proxmox VMs
- Installing video graphics drivers
- Bootstraping a Kubernetes cluster
- Ensure you have Ansible and the
ansible-galaxyCLI installed on your control node. - Install this Ansible collection:
ansible-galaxy collection install gillwong.homelabYou can use the roles in this collection by referencing them in your playbooks. Example usage can be found in this repo.
Each role provides default variables that you can override in your playbooks or inventory. See the defaults/main.yml file in each role directory for available options.
Example:
# Override variables in your playbook or inventory
override_var: value- base: Base system configuration
- calico: Installs and configures Calico networking for Kubernetes
- calico_base: Base system configuration for Calico
- containerd: Installs and configures containerd runtime
- crictl: Installs and configures crictl tool
- flux: Installs and configures Flux for GitOps
- gitlab_runner: Installs and configures a self-hosted GitLab Runner
- k8s_base: Base configuration for Kubernetes nodes
- k8s_cp_base: Control plane base configuration
- k8s_download: Handles Kubernetes binary downloads
- k8s_tools: Installs Kubernetes CLI tools and dependencies
- kubeadm_init: Handles kubeadm cluster initialization
- kubeadm_join_cp: Handles joining control plane nodes
- kubeadm_join_worker: Handles joining worker nodes
- kubeadm_post: Post-initialization tasks for kubeadm
- nvidia: Installs NVIDIA drivers and tools
- nvidia_containerd: NVIDIA containerd integration
- openebs_base: Configures system for OpenEBS
- os: Utility role to check a system's OS family
- pve: Proxmox VE node base configuration
- ntp: Network Time Protocol configuration
- libvirt_base: Libvirt host configuration
- update_libosinfo: Updates libosinfo local database
- create_almalinux_vm: Creates an Almalinux 10 virtual machine using libvirt
- shutdown_vm: Shuts down a virtual machine using libvirt
See each role's README.md for more details and available variables.