Skip to content

Ansible roles to manage my home-lab.

Notifications You must be signed in to change notification settings

ncasaux/home-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧪 Nicolas's Home Lab

This repository contains all the resources I use to maintain my home lab. I use my home lab mainly to run Home Assistant, but also to experiment and ultimately to learn about IaC, GitOps, Linux, Docker, Kubernetes, etc...

The repository is mainly composed of Ansible resources.

Purpose

The purpose of this repository is simply to share how I manage my home lab. If it helps anyone to achieve similar goal, then the objective is reached! 👍

Your comments and suggestions are welcome!

Architecture

My home lab is composed of 2 logical components:

  1. The "Home Gateway": to manage "critical" services like DNS, reverse proxy and certificates renewal.
  2. The "Home Cluster": to manage all other services like Home Assistant.
architecture-beta
  group homecluster[Home Cluster]
  group homegateway[Home Gateway]

  service internet(cloud)[Internet] 
  service modem(internet)[Modem]
  service udm(internet)[Ubiquity Dream Machine Router]
  service rpi4(server)[Raspberry Pi 4] in homegateway
  service tpi2(server)[Turing Pi 2] in homecluster
  service rpi3(server)[Raspberry Pi 3] in homecluster

  junction junctionCenter

  internet:R -- L:modem
  modem:R -- L:udm
  udm:R -- L:rpi4
  rpi4:R -- L:junctionCenter
  junctionCenter:R -- L:rpi3
  junctionCenter:T -- L:tpi2
Loading

Therefore, there are 2 Ansible roles to manage them.

Repository layout

├─📝 inventory.yml        # Ansible inventory file
├─📝 home-gateway.yml     # Playbook for the home gateway
├─📝 home-cluster.yml     # Playbook for the home cluster
├─📝 renovate.json        # Renovate configuration file
└─📁 roles                # Ansible roles
  ├─📁 home_gateway       # Role for the home gateway
  ├─📁 home_cluster       # Role for the home cluster
  ├─📁 configure_ssh      # Role to configure SSH on control and managed nodes
  ├─📁 rpi_cgroupmemory   # Role to enable cgroup settings
  └─📁 rpi_upgrade        # Role to update and upgrade packages

Home Gateway

Hardware

Raspberry Pi 4 Model B Rev 1.2 with:

  • PoE+ HAT
  • GeeekPi Aluminum Case with Fan

Software

Home Cluster

Hardware

Software