View on GitHub

homelab-monorepo

Home lab infrastructure as code repo.

Home Lab

Overview

This (WIP) page describes a home lab environment for evaluation and testing of various technologies. Basic provisioning & configuration of both supporting infrastructure and additional products is documented here - mostly so I remember how I did stuff.

GitHub Repo: https://github.com/clayshek/homelab-monorepo

Goals

Software

Gear / Roles

Config

Raspberry Pi Provisioning & Config

Raspberry Pis are each configured with an Ansible playbook, pulled at OS install from another of my GitHub repos: https://github.com/clayshek/raspi-ubuntu-ansible

Requires flashing SD card(s) with Ubuntu, and copying in the customizable CloudInit user-data file (included in repo) to the boot partition before inserting into and starting each Pi. After a few minutes, based on defined inventory role, provisioning is complete and ready for any further config. K3s cluster is provisioned with Rancher’s Ansible playbook.

Proxmox Hypervisor Provisioning & Config

Proxmox configuration requires installation of Proxmox VE on each node, followed by running https://github.com/clayshek/ansible-proxmox-config Ansible playbook (after customization). Once complete, manually create cluster on one node, join other nodes to cluster, and configure cluster data storage specific to implementation details.

Metrics, Monitoring & Logging

Proxmox VM Templates

VM deployments based on a template are much faster than running through a new install. The packer code in this repo builds Proxmox template images (and handles OS / package updates) for most frequently used VM operating systems. These templates are used for later infrastructure provisioning.

Lab Environment & Deployed Apps

Microsoft Windows Server Lab:

The base VMs for the Windows Server lab are provisioned using the terraform code in this repo, then configured with the included ansible playbooks.

Apache CloudStack (Proxmox VMs)

Provisioned with Terraform, configured with Ansible.

Kubernetes cluster, incl Windows worker node (Proxmox VMs)

K3s sandbox cluster (Proxmox VMs)

Nested VMware Lab (Proxmox VMs)

GitLab (Proxmox Turnkey Linux Container)

InfoBlox Eval (Proxmox VM)

Caddy-based Lab Dashboard / Portal (K3s container)

Dynamic DNS Updaters for Google & OpenDNS (K3s container)

Unifi Network Controller (K3s container)

Prometheus (K3s container)

Grafana (Proxmox VM)

Consul (K3s containers)

APC UPS Monitor (K3s container)

General To-Dos

Diagram & Photos